2021 07 13
PrimaryKeyRelatedField PrimaryKeyRelatedField を使用することでリレーションのあるテーブルのプライマリーキーを取得することが出来る。 class StatusSerializer(serializers.ModelSerializer): uri = serializers.SerializerMethodField(read_only=True) user = UserPublicSerializer(read_only=True) user_id = serializers.PrimaryKeyRelatedField(source='user', read_only=True) class Meta: model = Status fields = [ 'uri', 'user_id', 'id', 'user', 'content', 'image' ] read_only_fields = ['user'] "results": [ { "uri": "http://127.0.0.1:8000/api/status/1/", "id": 7, "user_id": 1, "user": { "id": 1, "username": "test", "uri": "http://127.0.0.1:8000/api/user/test/" }, "content": "do some stuff here", "image": "http://127.0.0.1:8000/media/status/test/images.png" }, DRF ドキュメント HyperlinkedRelatedField PrimaryKeyRelatedField を使用することでリレーションのあるテーブルのターゲットのハイパーリンクを取得することが出来る。 class StatusSerializer(serializers.ModelSerializer): uri = serializers.SerializerMethodField(read_only=True) user = UserPublicSerializer(read_only=True) user_id = serializers....