我有一个包含两个模型的Django应用程序 - Company
和User
。这些都是单独的文件。每个User
都有Company
个model.ForeignKey
字段:
company.py:
class Company(models.Model):
name = models.CharField(max_length=32)
is_admin = models.BooleanField(default=False)
user.py:
# Ignore the clumsy in this import for a moment
from package.models.company import Company
class User(models.Model):
name = models.CharField(max_length=32)
company = models.ForeignKey(Company)
现在,我要做的一件事是向list_admins
添加方法Company
(不 User
),这会给我一个列表恰好将is_admin
设置为True
的所有用户:
def list_admins(self):
return User.object.filter(is_admin=True);
但当然这需要我在公司中导入User
,我无法导入User
和{{Company
1}} Company
同时由于其循环性。
那么如何以Pythonic / Djangoic方式解决这个问题呢?
答案 0 :(得分:2)
您可以在每个ForeignKey
上使用反向Company
关系来访问各自的Users
:
def list_admins(self):
return self.user_set.filter(is_admin=True)
答案 1 :(得分:-1)
def list_admins(self):
return User.object.filter(company__is_admin=True);