【问题标题】:Customize Django admin site for User为用户自定义 Django 管理站点
【发布时间】:2013-10-24 19:46:37
【问题描述】:

我正在尝试隐藏 Django 管理站点中的 is_staff 和 is_superuser 字段。我把它放在本地 admin.py 中

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',
)

【问题讨论】:

    标签: django django-admin


    【解决方案1】:

    您的 admin.py 需要在实际的 django 应用程序中,即在您的 INSTALLED_APPS 设置中的东西。您发布的代码应该可以正常工作。

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

    【讨论】:

    • 它在已安装的应用程序中。
    • 真的是进口的吗?尝试在文件末尾添加print "hello",看看控制台中是否弹出“hello”。
    • 是的,“你好”确实出现在我的控制台中。
    • 您可以发布您的INSTALLED_APPS 设置吗?您的应用是否出现在 'django.contrib.auth' 之后?
    • 刚刚发布了它们。我在材料应用程序中有 admin.py。它确实出现在 django.contrib.auth 之后。
    【解决方案2】:

    如果您想从 list_display 或编辑表单中删除这些字段,请说明一下,您可以尝试

    排除 = ('is_staff', 'is_superuser')

    这应该可以解决问题。

    【讨论】:

      猜你喜欢
      • 2019-08-18
      • 2020-07-03
      • 2018-12-16
      • 1970-01-01
      • 2011-11-28
      • 2020-03-04
      • 2021-06-07
      • 1970-01-01
      • 2011-05-03
      相关资源
      最近更新 更多