2013-10-24 48 views
0

我试图隐藏Django管理站点中的is_staff和is_superuser字段。我把这个放在本地管理员中.py为用户自定义Django管理站点

from django.contrib import admin 
from django.contrib.auth.admin import UserAdmin 
from django.contrib.auth.models import User 
from django.utils.translation import ugettext, ugettext_lazy as _ 

class MyUserAdmin(UserAdmin): 
    fieldsets = ( 
     (None, {'fields': ('username', 'password')}), 
     (_('Personal info'), {'fields': ('first_name', 'last_name', 'email')}), 
     (_('Permissions'), {'fields': ('is_active', 'groups', 'user_permissions')}), 
     (_('Important dates'), {'fields': ('last_login', 'date_joined')}), 
    ) 
    list_display = ('username', 'email', 'first_name', 'last_name') 
    list_filter = ('is_active', 'groups') 

admin.site.unregister(User) 
admin.site.register(User, MyUserAdmin) 

虽然它不工作。这些字段仍在管理站点中。

这是我安装的应用程序。我在材料应用程序中有我的admin.py。

INSTALLED_APPS = ( 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'django.contrib.admin', 
    'django.contrib.admindocs', 
    'home', 
    'materials', 
    'south', 
    'functional_tests', 
    'reports', 
) 

回答

1

您的admin.py需要位于实际的django应用程序中,即您的INSTALLED_APPS设置中的某些内容。你发布的代码应该可以正常工作。

编辑:为了将来的参考问题是另一个应用程序更改用户管理员。

+0

它在一个已安装的应用程序。 – Wally

+0

它是否真的被导入?尝试在文件末尾添加'print“hello”',看看你的控制台是否弹出“hello”。 – Greg

+0

是的,“你好”确实出现在我的控制台中。 – Wally

0

,如果你想删除list_display或编辑表单这些字段请解释,你可以尝试

排除=(“is_staff”,“is_superuser”)

这应该做的伎俩。