关于 Django 模型,我还有很多东西要学,所以要温柔。考虑这个模型:
from django.db import models
from django.contrib.auth.models import User
class Community(models.Model):
users = models.ManyToManyField(User)
class Portal(models.Model):
community = models.ForeignKey(Community, blank=True, null=True)
class Page(models.Model):
portals = models.ManyToManyField(Portal, null=True)
所以一个页面可以在许多门户中。每个门户网站都有一个社区,一个社区有很多用户。现在我正在尝试查找与单个页面相关的所有用户:
def allowed_users(self):
return User.objects.filter(community__in=Community.objects.filter(portal__in=self.portals.all()))
这行得通,但我确信有一种更有效的方法。可能与 Q 或 F. 任何帮助表示赞赏。