私はポストモデルと識別子モデルを持っています。ポストのPKは識別子のFKであるため、どちらも関連しています。ポストテーブルからデータを返す間に、識別子テーブルのデータも返す必要があります。どのように効率的に行うことができますか? Identifier
モデルのシリアライザを指すPost
モデルのシリアライザ、上nested relationshipでdjango rest frameworkシリアライザでは、外部キーテーブルとメインテーブルのデータをどうやって返すことができますか?
models.py
class SharedIdentifier(models.Model):
post = models.ForeignKey('post.Post',related_name='ref_posts', on_delete=models.CASCADE)
label = models.CharField(max_length=32)
value = models.CharField(max_length=50)
serializers.py
class SharedIdentifierSerializer(serializers.ModelSerializer):
class Meta:
model = SharedIdentifier
fields = ('id', 'post', 'label', 'value',)
read_only_fields = ('post')
class PostSerializer(serializers.ModelSerializer):
author = UserSerializer(required=False,)
ref_user = UserSerializer(read_only=True)
ref_user_id = serializers.PrimaryKeyRelatedField(queryset=User.objects.all(), write_only=True, source='ref_user')
identifier = serializers.CharField(max_length=32, write_only=True)
identifier_info = SharedIdentifierSerializer(required=False,many=True,read_only=True)
class Meta:
model = Post
fields = ('id', 'author', 'ref_user', 'ref_user_id', 'status', 'message', 'type', 'parent_id', 'rating', 'create_date', 'close_date','identifier','identifier_info',)
read_only_fields = ('status', 'close_date', 'author', 'ref_user','identifier_info',
モデルコードを掲載することはできますか?あなたのモデルの関係を理解しているかわかりません –
モデルコードを追加しました。 –
identifier_infoシリアライザフィールドに 'source = ref_posts'を追加してみてください。あなたが望むデータを探す場所が分からないように見えます。 –