2015-05-01 13 views
5

Chcę utworzyć prostą serializatora, że ​​każdy kto chce będzie mógł dodać pytanie z wieloma odpowiedziami (ile że chcesz)Django odpocząć 3.1.1 - jeden do wielu serializatora z „wiele” atrybutu

jedno pytanie - wiele odpowiedzi

  • Chcę móc dodać z budową w formie html i nie edytować json.

moje modele:

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) 

mój 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 

teraz, gdy biegnę w internecie pojawia się komunikat:

„Listy nie są obecnie obsługiwane w formacie HTML. "

proszę o pomoc :)

pierwsza edycja

nawet kiedy usunąć ('Wiele = true') pojawia się błąd podczas próby postu:

AssertionError na/questions/ Metoda .create() domyślnie nie obsługuje zapisywanych pól zagnieżdżonych. Napisz wyraźną metodę .create() dla serializera api_project2.urls.QuestionSerializer lub ustaw read_only=True na zagnieżdżonych zmiennych serializera.

ów tworzy m drugi problem: metoda create(), że ja nie knwo edytowaniu

Odpowiedz

3

po usunięciu ("wiele = prawda"), pojawi się błąd podczas próby wysłania, ponieważ nie przepisałeś funkcji create, powinieneś przepisać funkcję create

1

Twój cytat odpowiedzi na swoje pytanie. Wbudowane formularze wejściowe widoku HTML nie obsługują list.

Wygląda na to, że obsługa była planned for 3.1, ale nie widzę żadnej wzmianki w 3.1 release notes.

Powiązane problemy