Django:外键(多对多)显示值



我有以下简单的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()])

相关内容

  • 没有找到相关文章

最新更新