【发布时间】:2011-04-02 04:10:49
【问题描述】:
我正在尝试为 Django 应用程序设置一些自定义权限,但似乎无法使其正常工作。官方文档有点少,并且没有提到(至少我能找到)如何实际设置权限?根据我找到的一些 3rd 方教程,我扩展了 User 类,它似乎工作正常:
from django.db import models
from django.contrib.auth.models import User,UserManager
class CustomUser(User):
custom_field = models.CharField(max_length=250)
objects = UserManager()
class Meta:
permissions = (
('is_custom','Has a Custom Permission'),
)
但是,当我尝试设置权限时,它不起作用:
>>> from project.custauth.models import CustomUser
>>> from django.contrib.auth.models import User, Permission
>>> user = CustomUser.objects.get(username='new.user')
>>> user
<CustomUser: new.user>
>>> custom_permission = Permission.objects.get(codename="is_custom")
>>> custom_permission
<Permission: custauth | custom user | Has a Custom Permission>
>>> custom_permission.save()
>>> user.user_permissions.add(custom_permission)
>>> user.save()
>>> user.has_perm(custom_permission)
False
>>> user.get_all_permissions()
set([])
关于我做错了什么有什么想法吗?我将 Django 1.2.1 与 Python 2.4.3 一起使用。感谢所有输入...
【问题讨论】:
-
如果有人来寻找解决方案,我发现这很有帮助:stackoverflow.com/questions/10102918/…
标签: python django permissions