Django:继承抽象模型的权限?

Ber*_*ant 4 django django-models abstract django-permissions

是否可以从Django中的抽象模型继承权限?我真的找不到任何相关的东西.对我来说这不起作用!

class PublishBase(models.Model): 
    class Meta:
        abstract = True
        get_latest_by = 'created'
        permissions = (('change_foreign_items',
                        "Can change other user's items"),)
Run Code Online (Sandbox Code Playgroud)

编辑:不工作意味着它无声地失败.不会创建权限,因为在从此类继承的模型上不存在权限.

Ber*_*ant 10

如果子类也定义了自己的权限,则不会继承权限class Meta.我找到了以下解决方法,从而不必再在每个子模型上定义权限:

class AbstractBaseModel(models.Model):
    class Meta:
        abstract = True
        permissions = (("test_permission","test permission"),)


class SomeClass(AbstractBaseModel):
    name = models.CharField(max_length=255,verbose_name="Name")

    class Meta(AbstractBaseModel.Meta):
        verbose_name = ....
Run Code Online (Sandbox Code Playgroud)

不需要在子Meta类中将abstract设置为false,因为Django在处理它时将它在父级中设置为False!http://docs.djangoproject.com/en/dev/topics/db/models/#meta-inheritance


小智 2

以下是解决您问题的链接: http: //code.djangoproject.com/ticket/10686 需要应用补丁...但它确实有效。