除了用户名、电子邮件、名字、姓氏、员工用户列之外,我如何显示第5列用户ID。我想我必须在www.example.com中编写一些代码admin.py如:
class CustomUserAdmin(UserAdmin): readonly_fields = ('id',) admin.site.register(CustomUserAdmin)
pftdvrlh1#
您应该利用ModelAdmin.list_display,文档位于--〉https://docs.djangoproject.com/en/2.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_display
ModelAdmin.list_display
class CustomUserAdmin(UserAdmin): list_display = ('username', 'email', 'first_name', 'last_name', 'id') readonly_fields = ('id',) admin.site.register(User, CustomUserAdmin)
如果发生AlreadyRegistered错误,应在admin.site.register行之前添加以下
AlreadyRegistered
admin.site.register
admin.site.unregister(User)
ekqde3dh2#
class UserAdmin(admin.ModelAdmin): list_display = ['first_name', 'last_name',....., 'user_id'] class Meta: model = User admin.site.register(User, UserAdmin)
在列表显示中添加user_id字段。
xqk2d5yq3#
派对来晚了点但我想贡献点什么。当我尝试接受的解决方案时,我意识到用户管理页面丢失了一些功能(可能是稍后添加的其他功能)。下面是不想丢失其他功能的解决方案:
from django.contrib import admin from django.contrib.auth.admin import UserAdmin from django.contrib.auth.models import User admin.site.unregister(User) # Register your models here. @admin.register(User) class CustomUserAdmin(UserAdmin): readonly_fields = ("id",) def __init__(self, model, admin_site): super().__init__(model, admin_site) self.list_display = ("id",) + self.list_display
我使用了默认的UserAdmin类,并从它继承而来,然后将"id"字段添加到super的list_display字段中,很好地解决了这个问题。请注意,如果您使用的是自定义用户类,则可以通过使用AUTH_USER_MODEL来改进解决方案。
"id"
list_display
AUTH_USER_MODEL
3条答案
按热度按时间pftdvrlh1#
您应该利用
ModelAdmin.list_display
,文档位于--〉https://docs.djangoproject.com/en/2.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_display如果发生
AlreadyRegistered
错误,应在admin.site.register
行之前添加以下ekqde3dh2#
在列表显示中添加user_id字段。
xqk2d5yq3#
派对来晚了点但我想贡献点什么。
当我尝试接受的解决方案时,我意识到用户管理页面丢失了一些功能(可能是稍后添加的其他功能)。下面是不想丢失其他功能的解决方案:
我使用了默认的UserAdmin类,并从它继承而来,然后将
"id"
字段添加到super的list_display
字段中,很好地解决了这个问题。请注意,如果您使用的是自定义用户类,则可以通过使用
AUTH_USER_MODEL
来改进解决方案。