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 Admins.

因此,您可以 link Admin 通过 在小部件中选择 到一个帐户。在这种情况下,account.admins.all() 将 return 为该帐户选择的 Admin 个对象。