【发布时间】:2011-02-10 22:22:42
【问题描述】:
我想在抽象模型类上定义一些自定义权限,然后由所有子类继承,而不是给权限一个可以应用于任何子类模型类型的通用对象名称,我想基本上使用子模型的 verbose_name_plural 属性作为权限名称和描述的一部分(例如 ('view_classname', 'Can view classname')),模拟 Django 的默认行为。
所以,我希望做的是这样的事情(这是行不通的,因为verbose_name_plural 未在此上下文中定义):
class AbstractModel(models.Model):
class Meta:
abstract = True
permissions = (
(u'view_%ss' % verbose_name_plural, u'Can view %s' % verbose_name_plural),
)
(这个问题在http://code.djangoproject.com/ticket/10686也有描述,其中包括一个补丁,实现了权限定义中%(class)s的动态替换,但是这个补丁从来没有被接受,我的生产环境也不允许打补丁。)
【问题讨论】:
-
这仍然是一个问题,但对于最近的人来说,一个模糊的积极消息是,这个问题在 6 个月前已经收到了一些工作,但还没有发布(并且在撰写本文时,我们是 1.10.5)。 github.com/django/django/pull/6861#issuecomment-240427426
标签: django django-models django-permissions