Sim*_*nko 4 python django django-rest-framework
出于某种原因,序列化程序的深度选项会在创建时忽略字段。
序列化器:
class AnswerSerializer(serializers.ModelSerializer):
class Meta:
model = Answer
fields = ('question', 'body',)
depth = 1
Run Code Online (Sandbox Code Playgroud)
看法:
class AnswerList(ListCreateAPIView):
queryset = Answer.objects.all()
serializer_class = AnswerSerializer
Run Code Online (Sandbox Code Playgroud)
当我尝试使用depth = 1I get创建答案时NOT NULL constraint failed: forum_answer.question_id,但是当我注释掉depth = 1一切时。但当然我没有得到一个完整的Question对象,只有pk它。
在这里找到了更好的解决方案
现在序列化程序看起来像这样:
class AnswerSerializer(serializers.ModelSerializer):
question_pk = serializers.PrimaryKeyRelatedField(
queryset=Question.objects.all(), source='question', write_only=True
)
class Meta:
model = Answer
fields = ('question', 'question_pk', 'body',)
depth = 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3924 次 |
| 最近记录: |