2015-05-01 11 views
5

ich eine einfache Serializer erstellen möchten, dass jeder, der in der Lage möchte eine Frage mit mehreren Antworten hinzuzufügen (wie viele, dass er will)django ruhen 3.1.1 - one to many Serializer mit „vielen“ -Attribut

eine Frage multi Antwort

  • Ich möchte in der Lage sein, mit dem Build in HTML-Formular hinzufügen und nicht die JSON zu bearbeiten.

meine Modelle:

class Question(models.Model): 
     question_text = models.CharField(max_length=30) 

    class Answer(models.Model): 
     question = models.ForeignKey(Question) 
     answer_text = models.CharField(max_length=40) 

mein url.py

class AnswerSerializer(serializers.HyperlinkedModelSerializer): 
    class Meta: 
     model = Answer 
     fields = ('answer_text',) 


class QuestionSerializer(serializers.HyperlinkedModelSerializer): 

    answers = AnswerSerializer(many=True) 
    class Meta: 
     model = Question 
     fields = ('question_text', 'answers',) 

class QuestionViewSet(viewsets.ModelViewSet): 
    queryset = Question.objects.all() 
    serializer_class = QuestionSerializer 

jetzt, wenn ich die Web laufen bekomme ich die Meldung:

„Listen sind zur Zeit nicht in HTML-Eingabe unterstützt. "

bitte :)

zuerst bearbeiten

sogar helfen, wenn ich die ('viele = True') i einen Fehler zu entfernen, während zu schreiben versucht:

AssertionError at/questions/ Die Methode .create() unterstützt schreibbare Nestedfields standardmäßig nicht. Schreiben Sie eine explizite .create() Methode für den Serializer api_project2.urls.QuestionSerializer, oder setzen Sie read_only=True auf geschachtelte Serializerfelder.

das ist erstellt m zweites Problem: die create() Methode, die i knwo nicht, wie

Antwort

3

Wenn Sie die ('viele = True') entfernen, erhalten Sie eine Fehlermeldung beim Versuch zu schreiben, weil Sie die Funktion create nicht neu geschrieben haben, sollten Sie die Funktion create

neu schreiben
1

Ihr Zitat beantwortet Ihre Frage zu bearbeiten. Die integrierten HTML-Eingabeformulare unterstützen keine Listen.

Es scheint, dass die Unterstützung war planned for 3.1, aber ich sehe keine Erwähnung in der 3.1 release notes.