我正在使用Django构建日历应用程序,我需要一些有关用户权限的帮助。我通过为每个条目编写经理模型给每个用户他/她自己的日历 - 所以我的模型看起来像这样:
class EntryManager(models.Manager):
def for_user(self, user):
return super(EntryManager, self).get_query_set().filter(creator=user)
class Entry(models.Model):
# ...
objects = EntryManager()
然后,在我的views.py
中,我将每个条目按创建者排序。
entries = Entry.objects.for__user(request.user).filter(date__year=year, date___month=month, date__day=day)
我现在要做的是允许用户创建自己的组,其中组的管理员能够添加/编辑/删除/查看条目,而普通用户只能查看。该组外的任何人都将无法访问这些条目。基本上,日历将显示属于用户的所有条目以及属于用户所属的组的所有条目。现在,即使我在Django Administration中指定用户组,日历也不会显示组条目,因为条目按创建者排序。我正在研究Pinax,但最新版本似乎已经摆脱了群组,因为他们正在将所有应用程序移动到外部资源。如果有人有任何建议,我会全力以赴。