如this问题所述
With Django REST Framework, a standard ModelSerializer will allow ForeignKey model relationships to be assigned or changed by POSTing an ID as an Integer.
我正在尝试更新以下格式的反向关系:
class Lesson(models.Model):
name = models.TextField()
class Quiz(models.Model):
lesson = models.ForeignKey(Lesson, related_name='quizzes', null=True)
class LessonSerializer(serializers.ModelSerializer):
quizzes = serializers.PrimaryKeyRelatedField(queryset=Quiz.objects.all(), many=True, write_only=True)
class Meta:
model = Lesson
fields = ('quizzes')
当使用LessonSerializer
发布包含测验主键数组的更新时,我得到TypeError: 'Quiz' instance expected, got '1'
。在
是否可以通过发布主键数组来分配或更改反向关系?在
在序列化程序中不需要特殊字段,DRF序列化程序足够聪明,可以从
fields
值中找出相关字段。在你应该传递id的列表,如果只有一个值,它应该是一个列表。在
要解决这个问题,您需要先创建一个测试实例,然后再将其分配给课程。下面是对代码的一个小改动。在
使用with测验创建帖子请求,然后再次运行帖子
相关问题 更多 >
编程相关推荐