自定义用户修改表单django管理站点

时间:2020-03-22 11:23:48

标签: django django-admin django-users

当您从django管理站点创建/修改用户时,您将具有以下界面:

permissions form from the user interface dajngo admin

我的项目非常简单,因为我没有团队,每个员工用户都可以拥有超级用户状态。这就是为什么我不想显示超级用户状态选项,组和用户权限都不显示的原因。如何掩盖此表单的这一部分,并断言所有员工用户也是超级用户。

此表单是在此处生成的:django / contrib / admin / templates / admin / change_form.html

,尤其是在这行:

{% block field_sets %}
{% for fieldset in adminform %}
  {% include "admin/includes/fieldset.html" %}
{% endfor %}
{% endblock %}

所以我需要修改adminform变量,但是不知道如何。

任何帮助将不胜感激。

提前谢谢!

2 个答案:

答案 0 :(得分:0)

我认为您需要修改该模板。所以你看看

django / contrib / admin / templates / admin / auth / user /

其中应包含几个用于修改用户的模板。

您可以通过将它们复制到TEMPLATE_DIR / admin / auth并进行更改来覆盖它们。

另外,请查看@ django / contrib / admin / templates / admin / change_form.html

这是您要复制并更改(更改为TEMPLATE_DIR / admin / auth / user /)的文件,以覆盖该模型的更改形式。

答案 1 :(得分:0)

这是方法。在admin.py文件中,使用所需的字段集定义一个新的用户admin:

from django.contrib import admin
from django.utils.translation import gettext, gettext_lazy as _

# Register your models here.
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User, Group

# Define a new User admin
class UserAdmin(UserAdmin):
    fieldsets = (
        (None, {'fields': ('username', 'password')}),
        (_('Personal info'), {'fields': ('first_name', 'last_name', 'email')}),
        (_('Permissions'), {
            'fields': ('is_active', 'is_staff', 'is_superuser'),
        }),
        (_('Important dates'), {'fields': ('last_login', 'date_joined')}),
    )


# Re-register UserAdmin
admin.site.unregister(User)
admin.site.register(User, UserAdmin)

# don't show groups
admin.site.unregister(Group)