2016-12-19 3 views
0

Im folgenden Code ist Vorlage ein Fremdschlüssel. Vorlage ist geschachtelter Serializer, um Serializer in Frage zu stellen.Wie platziere ich django rest verschachtelte Serializer-Felder zum Serializer?

[{ 
     "pk": 15, 
     "template": { 
      "question_type": 1, 
      "question": "What is your age ?", 
      "answer_type": 1, 
      "available_choices": [] 
     }, 
     "order": 1, 
     "mandatory": true 
    }] 

Was ich zeigen will, ist:

[ 
{ 
    "pk": 15, 
    "question_type": 1, 
    "question": "What is your age?", 
    "order": 1, 
    "answer_type": 1, 
    "mandatory": true, 
    "available_choices": [] 
}] 

Wie kann ich verschachtelte Serializer Datenfelder wie diese zeigen?

Das ist mein Serializer Klasse:

class TemplateSerializer(serializers.ModelSerializer): 
    available_choices = ChoiceSerializer(many=True) 

    class Meta: 
     model = Template 
     fields = (
      'question_type', 'question', 'answer_type', 
      'available_choices' 
     ) 
class ASerializer(serializers.ModelSerializer): 
    template = TemplateSerializer() 

    class Meta: 
     model = A 
     fields = (
      'pk', 'template', 'order', 'mandatory' 
     ) 
+0

Schreiben Sie einen benutzerdefinierten Serializer! –

Antwort

0

Angenommen, Sie definiert Ihre benutzerdefinierten create() und update() Funktionen auf Ihrem Serializer.

class ASerializer(serializers.ModelSerializer): 

    question_type = serializers.ReadOnlyField(source='template.question_type', read_only=True) 
    question = serializers.ReadOnlyField(source='template.question', read_only=True) 
    answer_type = serializers.ReadOnlyField(source='template.answer_type', read_only=True) 
    available_choices = serializers.ReadOnlyField(source='template.available_choices', read_only=True) 

    class Meta: 
     model = A 
+0

Danke, es hat funktioniert. Ich habe mit 'serializers.Field()' versucht. –

Verwandte Themen