python - django rest 3.1.1 - 具有 "many"属性的一对多序列化器

标签 python django django-rest-framework models serialization

我想创建一个简单的序列化器,每个想要的人都可以添加一个有多个答案的问题(他想要多少)

一题多答

  • 我希望能够以 html 形式添加构建,而不是编辑 json。

我的模型:

    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)

我的网址.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

现在,当我运行网络时,我收到消息:

"Lists are not currently supported in HTML input."

请帮忙:)

第一次编辑

即使我删除了 ('many=True'),我在尝试发布时也会遇到错误:

AssertionError at /questions/ The .create() method does not support writable nestedfields by default. Write an explicit .create() method for serializer api_project2.urls.QuestionSerializer, or set read_only=True on nested serializer fields.

那就是第二个问题:我不知道如何编辑的 create() 方法

最佳答案

当您删除 ('many=True') 时,尝试发布时会出错,因为您尚未重写函数 create,您应该重写函数 create

关于python - django rest 3.1.1 - 具有 "many"属性的一对多序列化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29995717/

相关文章:

Django REST Framework 将 'null' 替换为 IntegerField 中的 0

python - plotly 中的相机位置如何工作

python - Tkinter 窗口根据下拉菜单的选择进行更新

python - 管理 Django 中的错误有困难 - NoReverseMatch at

django - celery 减慢django

android - 在 volley post 请求中发送表单数据

python - 为什么 @api.doc 装饰器 python flask restplus 不更新我所做的更改?

带有 order_by 的 Django 查询,不同的和对 Postgresql 的限制

python - Django Rest Framework 自定义 JWT 认证

python - 在 Django Rest Framework 中保存相关的嵌套对象