2016-04-05 11 views
1

Post model ve tanımlayıcı modelim var. Her ikisi de postaya göre PK tanımlayıcısı olarak FK ile ilgilidir. Verileri posta tablosundan döndürürken, tanımlayıcı tablo verilerini de döndürmem gerekiyor. Nasıl verimli bir şekilde yapabilirim?django rest framework serializer'da, ana tablo ile birlikte ana anahtar tablosunun verilerini nasıl döndürebilirim?

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 Post modelin seri hale getirici bir nested relationship ile

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', 
+0

Model kodunuzu gönderir misiniz? Modellerinizin arasındaki ilişkiyi anladığımdan emin değilim. –

+0

Eklenen model kodu. –

+2

Identifier_info serializer alanına 'source = ref_posts' eklemeyi deneyin. İstediğiniz verileri nerede arayacağınızı bilmeyecek gibi görünüyor. –

cevap

1

, o Identifier modelin seri hale işaret eder.

+0

Koduyla güncellenen soru. Bu şekilde denedim ve identifier_info döndü. –

İlgili konular