最佳答案
使用 Django REST 框架,标准的 ModelSerializer 将允许通过将 ID 作为 Integer 进行 POST 来分配或更改 ForeignKey 模型关系。
从嵌套序列化程序中获取这种行为的 最简单的方法是什么?
注意,我只是在谈论分配现有的数据库对象,即 没有嵌套创建。
过去我曾经在序列化程序中使用额外的“ id”字段以及定制的 create
和 update
方法来解决这个问题,但是对我来说,这是一个看似简单而又经常发生的问题,所以我很想知道最好的解决方法。
class Child(models.Model):
name = CharField(max_length=20)
class Parent(models.Model):
name = CharField(max_length=20)
phone_number = models.ForeignKey(PhoneNumber)
child = models.ForeignKey(Child)
class ChildSerializer(ModelSerializer):
class Meta:
model = Child
class ParentSerializer(ModelSerializer):
# phone_number relation is automatic and will accept ID integers
children = ChildSerializer() # this one will not
class Meta:
model = Parent