Django:外键(多对多)return 空查询集尽管不为空
Django: foreign key (many-to-many) return empty queryset despite not being empty
我的模特:
class Account(models.Model):
"""
An account is for a team of users, or a single customer
"""
name = models.CharField(max_length=100, unique=True)
admins = models.ManyToManyField('AccountUser', related_name='+', blank=True)
metadata = models.JSONField(default=dict, blank=True)
def __str__(self):
return self.name
@property
def customers(self):
"""Accounts linked to this account"""
return self.linked_accounts.linked_accounts.all()
和我的代码:
>>>account = Account.objects.get(id=1)
>>> print(account)
Bramble CFD
>>> print(account.name)
Bramble CFD
当我尝试获取管理员 many_to_many 字段时,我得到以下空查询集:
>>> print(account.admins.all())
<QuerySet []>
但管理员字段不为空,如下面的 django 管理界面屏幕截图所示:
有 Admin
,你的 Account
存在,但是 Admin
中的 none 是 linked 到 那 具体 Account
。小部件显示 all Admin
s.
因此,您可以 link Admin
通过 在小部件中选择 到一个帐户。在这种情况下,account.admins.all()
将 return 为该帐户选择的 Admin
个对象。
我的模特:
class Account(models.Model):
"""
An account is for a team of users, or a single customer
"""
name = models.CharField(max_length=100, unique=True)
admins = models.ManyToManyField('AccountUser', related_name='+', blank=True)
metadata = models.JSONField(default=dict, blank=True)
def __str__(self):
return self.name
@property
def customers(self):
"""Accounts linked to this account"""
return self.linked_accounts.linked_accounts.all()
和我的代码:
>>>account = Account.objects.get(id=1)
>>> print(account)
Bramble CFD
>>> print(account.name)
Bramble CFD
当我尝试获取管理员 many_to_many 字段时,我得到以下空查询集:
>>> print(account.admins.all())
<QuerySet []>
但管理员字段不为空,如下面的 django 管理界面屏幕截图所示:
有 Admin
,你的 Account
存在,但是 Admin
中的 none 是 linked 到 那 具体 Account
。小部件显示 all Admin
s.
因此,您可以 link Admin
通过 在小部件中选择 到一个帐户。在这种情况下,account.admins.all()
将 return 为该帐户选择的 Admin
个对象。