我无法同时显示用户的个人和组条目。
我的组模型是这样写的:
class Group(models.Model):
name = models.CharField(max_length=100)
users = models.ManyToManyField(User, blank=True, null=True, related_name='entry_users')
我的入门型号:
class Entry(models.Model):
###
authorized_groups = models.ManyToManyField('Group', null=True, blank=True, related_name='entry_groups')
objects = EntryManager()
在Entry
模型之前,我编写了一个带有用户过滤器的条目管理器。
如果我想显示用户的个人条目,我使用以下内容:
class EntryManager(models.Manager):
def for_user(self, user):
return super(EntryManager, self).get_query_set().filter(creator=user)
如果我想显示用户的组条目,我使用以下内容:
class EntryManager(models.Manager):
def for_user(self, user):
return super(EntryManager, self).get_query_set().filter(authorized_groups=user)
我想将EntryManager
模型的两个版本合二为一。现在,我可以使用其中一个或,但不能同时使用。有小费吗?
如果有任何区别,在 中views.py
,我有一行代码可以抓取用户有权访问的所有对象:
entries = Entry.objects.for_user(request.user)
也许我应该保留两个条目管理器并编写两个不同的视图 - 一个用于单个对象,另一个用于组对象。不过那不会很干。