gpt4 book ai didi

ManyToMany 字段中的 Django/User 访问

转载 作者:行者123 更新时间:2023-12-02 03:19:53 24 4
gpt4 key购买 nike

我正在使用 django.contrib.auth.models 中的 User 类制作 django 应用程序。

我定义了一个模型,称为“组”,与用户具有 M2M 关系。我很难检索给定用户所属的组。

这是定义:

class group(models.Model):
user = models.ForeignKey(User,related_name = 'owner') # the owner
name = models.CharField(max_length=100) # name of the group

# members of the group
members = models.ManyToManyField(User,related_name = 'member')

def __unicode__(self):
return str(self.name)

我想检索用户属于组的 members 字段的组。

这是失败的命令,试图检索特定用户所属的组 - 我不确定为什么 - 你能让我知道吗? (user 是一个 User 实例)

user_groups = user.group_set.all()

我得到的错误是:

 'User' object has no attribute 'group_set'

这里出了什么问题?

解决方案

我最终找到了解决方案。我必须使用 lated_name 进行查询,所以这里是:

groups_member = user.member.all()

最佳答案

因为多对多关系是通过 members 属性实现的,并且该属性具有 lated_name 属性,所以正确的语法是:

user_groups = user.member.all()

(如果没有相关的 name 属性,则为 user_groups = user.members_set.all() )

相反的关系是:

group_users = group.members.all()

关于ManyToMany 字段中的 Django/User 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10147979/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com