Python 在django中处理来自多个模型的多个外键

Python 在django中处理来自多个模型的多个外键,python,python-3.x,django,django-models,django-rest-framework,Python,Python 3.x,Django,Django Models,Django Rest Framework,我的教区居民模型如下(仅粘贴相关代码) 教区居民可以有一个家庭和一个角色 所以我正试图在我的家庭连载程序中实现这一点 class FamilySerializer(serializers.ModelSerializer): members = serializers.PrimaryKeyRelatedField( many=True, queryset=Parishioner.objects.all(), allow_null=True,

我的教区居民模型如下(仅粘贴相关代码)

教区居民可以有
一个家庭
一个角色

所以我正试图在我的家庭连载程序中实现这一点

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'
但您可以清楚地看到,我在我的教区居民模型中添加了
相关的\u name='role'

那么我怎样才能实现我想要的呢

我想向家庭中添加成员(教区居民),并为该家庭中的每个成员分配角色

家庭的例子:父亲、母亲、儿子、女儿

我的前端将类似于我的CreateFamily页面(我希望只向服务器发送一个请求,通过使用
api/Family/
endpoint来实现这一点)


您是否尝试过删除深度或将其设置为2?很明显,您的序列化程序中有一个字段
角色
,我猜Django没有识别它,因为有
深度
选项


然后你会问我为什么它会识别字段
成员
?不是,这没有引起错误,因为您的
Parishoner
模型中有一个相关的_名称
家族

您的帖子中有几个问题

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')
因此,
Partishioner
有一个
角色

class FamilySerializer(serializers.ModelSerializer):
    class Meta:
        model = Family
        fields = ('id', 'name', 'address', 'monthly_contribution', 'members', 'role', 'enabled')
在序列化程序中,您尝试访问
系列
角色

'Family' object has no attribute 'role'

我猜您的
家庭
模型没有
角色
栏,但
教区居民
有。

您的
教区居民
模型中有相关的成员,很抱歉拼写错误是的,我尝试删除/更改深度,是的成员没有提出错误。我所要做的就是向家庭中添加成员(教区居民),并为家庭中的每个成员分配角色。是的,这就是问题所在。那么我怎样才能实现我想要的呢?基本上,在创建族时,我希望为族中的每个成员分配成员和角色
'Family' object has no attribute 'role'