0
我在使用Django管理界面創建用戶時經歷了一個奇怪的行爲。 我必須創建一個可以添加其他用戶的用戶,但爲此,Django需要兩個權限,即添加用戶和更改用戶。但是,當我給予用戶更改權限時,甚至可以更改網站的超級用戶。Django,創建用戶並添加用戶權限
我想要的是創建一個只能創建其他用戶的用戶。
請建議。
在此先感謝。
我在使用Django管理界面創建用戶時經歷了一個奇怪的行爲。 我必須創建一個可以添加其他用戶的用戶,但爲此,Django需要兩個權限,即添加用戶和更改用戶。但是,當我給予用戶更改權限時,甚至可以更改網站的超級用戶。Django,創建用戶並添加用戶權限
我想要的是創建一個只能創建其他用戶的用戶。
請建議。
在此先感謝。
這在Django中默認不支持。你可以繼承正常UserAdmin,讓你自己,那禁用非超級用戶的「超級用戶」 -checkbox:
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
from django.contrib import admin
class MyUserAdmin(UserAdmin):
def formfield_for_dbfield(self, db_field, **kwargs):
field = super(MyUserAdmin, self).formfield_for_dbfield(db_field, **kwargs)
user = kwargs['request'].user
if not user.is_superuser:
if db_field.name == 'is_superuser':
field.widget.attrs = {'disabled': 'disabled'}
return field
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)
[如何防止Django管理權限授予升級「用戶改變」時,許可
對,這隻會禁用小部件,但是id不能保證用戶不能改變這個對象。你必須重寫'save()'並在那裏進行必要的驗證。 – 2013-07-31 01:37:00
可能重複?](http://stackoverflow.com/questions/2297377/how-do-i-prevent-permission-escalation-in-django-admin-when-granting-user-change) – 2010-06-24 11:31:12
是的,似乎它應該工作..會試一試。非常感謝。 此外,是否有任何文件,我們可以得到哪些方法應該被重寫的信息,哪些功能和哪些參數應該被改變。就像在這種情況下,我們正在重寫field_set參數的change_view方法? – 2010-06-24 11:47:09
你可以覆蓋的大多數方法都在django/contrib/admin/options.py – 2011-06-02 02:28:00