【发布时间】:2021-08-03 14:08:25
【问题描述】:
我的教区居民模型如下(仅粘贴相关代码)
class Parishioner(models.Model):
family = models.ForeignKey(Family, null=True, on_delete=models.PROTECT, related_name='members')
role = models.ForeignKey(FamilyRole, null=True, blank=True, on_delete=models.PROTECT, related_name='role')
教区居民可以在该家庭中拥有one Family 和One role
所以我试图在我的Family Serializer 中实现这一点。
class FamilySerializer(serializers.ModelSerializer):
members = serializers.PrimaryKeyRelatedField(
many=True,
queryset=Parishioner.objects.all(),
allow_null=True,
required=False
)
class Meta:
model = Family
fields = ('id', 'name', 'address', 'monthly_contribution', 'members', 'enabled')
read_only_fields = ('id',)
depth = 1
正如您在上面看到的,我可以清楚地为该家庭分配成员。
但我也想为每个家庭成员分配角色。 我怎样才能在 Django 中做到这一点?
FamilyRole 的示例:父亲、母亲、儿子、女儿
我的前端将与我的Create Family page 中的类似(并且我希望通过使用api/family/ 端点仅向服务器发送一个请求来实现此目的)
我只是想,
创建一个家庭,
将成员(教区居民)分配给该家庭,
为每个成员(教区居民)分配角色,
通过api/family/端点。
实现上述目标的最佳方法是什么?
【问题讨论】:
-
不要使用
PrimaryKeyRelatedField,而是为Family创建自己的序列化程序,然后覆盖FamilySerializer的创建/更新方法。 django-rest-framework.org/api-guide/relations/…
标签: python-3.x django django-models django-rest-framework django-views