【发布时间】:2021-05-12 13:44:28
【问题描述】:
我的教区居民模型如下(仅粘贴相关代码)
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
)
role = serializers.PrimaryKeyRelatedField(
many=True,
queryset=FamilyRole.objects.all(),
allow_null=True,
required=False
)
class Meta:
model = Family
fields = ('id', 'name', 'address', 'monthly_contribution', 'members', 'role', 'enabled')
read_only_fields = ('id',)
depth = 1
基本上我想要做的是当我添加家庭时,我可以将成员(教区居民)添加到该家庭并为每个成员分配一个角色。
我在这里做错了什么?
因为当我加载我的api/family/
我遇到了错误
'Family' object has no attribute 'role'
但您可以清楚地看到我在 Parishioner 模型中添加了related_name='role'。
那么我怎样才能实现我想要的呢?
我想将成员(教区居民)添加到家庭并为该家庭中的每个成员分配角色。
FamilyRole 的示例:父亲、母亲、儿子、女儿
我的前端将与我的“创建家庭”页面中的此类似(并且我希望通过使用 api/family/ 端点仅向服务器发送一个请求以实现此目的)
【问题讨论】:
标签: python python-3.x django django-models django-rest-framework