我想为我的 Django 应用程序中的每个模型添加一个 can_view 元权限。
我非常想将它添加到 models.py
class Meta:
permissions = [ ( "can_view", "Can view {something}".format( something = self.verbose_name ) ]
我什至不确定 self.verbose_name 在这种情况下是否会像那样工作....
这可能吗?
奖励问题:一旦我在模型的 Meta 中添加权限,我就可以用 has_perm 调用它正确的?喜欢
if request.user.has_perm( 'polls.can_view' ) :
# Show a list of polls.
else :
# Say "Insufficient permissions" or something.
请您参考如下方法:
Permission 也是一个普通的 Django 模型实例。您可以像创建任何其他模型一样创建它。
所以你需要类似的东西
from django.contrib.auth.models import Permission
from django.contrib.contenttypes.models import ContentType
for content_type in ContentType.objects.all():
Permission.objects.create(content_type=content_type, codename='view_%s' % content_type.model, name='Can view %s' % content_type.name)
你需要做一次,所以post_syncdb signal 看起来是个好地方。
