【发布时间】:2009-04-07 14:07:28
【问题描述】:
我正在尝试使用模型继承向我的所有 Django 模型添加一个动态 Meta 属性,但我无法让它工作。我有一个权限,我想像这样添加到我的所有模型中:
class ModelA(models.Model):
class Meta:
permisssions =(('view_modela','Can view Model A'),)
class ModelB(models.Model):
class Meta:
permisssions =(('view_modelb','Can view Model B'),)
我尝试像这样创建一个抽象基类:
class CustomModel(models.Model):
def __init__(self, *args, **kwargs):
self._meta.permissions.append(('view_'+self._meta.module_name, u'Can view %s' % self._meta.verbose_name))
super(CustomModel,self).__init__(*args, **kwargs)
class ModelA(CustomModel):
....
class ModelB(CustomModel):
...
但它不起作用。这是正确的方法吗?因为 Django 使用自省来构造模型类,所以我不确定在类的 __init__() 期间添加权限是否会起作用。对于我当前的实现,每次访问模型实例时,它都会附加另一个权限元组。
【问题讨论】:
标签: django django-models