我有以下简单的django模型:
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()
我正试图循环浏览账户表,并在视图中显示账户记录:
queryset_account = Account.objects.all()
for account in queryset_account:
logger.warning(account.name)
logger.warning(account.admins)
显示帐户名称,但外键管理员没有返回任何信息。如何显示管理员的内容?
更新
我修改了代码以纳入Shreeyansh的建议:
for account in queryset_account:
logger.warning('account name: %s', account.name)
for admin in account.admins.all():
logger.warning('admin: %s', admin)
但仍然没有得到管理员的值,尽管我所有的帐户都有
由于admins
是多个字段,它将表示对象列表,根据您的模型定义,它也可能是空的。因此,为了从管理员那里读取值,您需要对列表进行迭代。
print([admin for admin in account.admins.all()])