zoukankan      html  css  js  c++  java
  • Django自定义Admin的用户管理页面

    通常默认admin中User管理列表和编辑页面都不和心意,我们需要进行定制化操作。

    在admins.py中增加以下代码,让用户列表显示更多内容。

    from django.contrib import admin
     # 1. 导入默认UserAdmin 作为Base Class
    from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
    from django.contrib.auth.models import User
    
    # 2.  Define a new User admin
    class UserAdmin(BaseUserAdmin):
        # 3. 重新定义 list_display
        list_display = ('username', 'email', 'first_name', 'last_name', 'is_active', 'date_joined', 'is_staff') 
    
    # 4. 注销 User
    admin.site.unregister(User)
    # 5. 重新注册 User
    admin.site.register(User, UserAdmin)
    

    如果你的User模型关联了其他属性表,比如UserProfile,又希望在同一个页面进行管理,办法如下:

    1. 在上一步基础上,导入自己的Profile model
    2. 定义 Inline Class
    3. 在自定义的UserAdmin中加入Inline信息
    from django.contrib import admin
    from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
    from django.contrib.auth.models import User
    from accounts.models import UserProfile
    
    
    class UserProfileAdmin(admin.ModelAdmin):
        list_display = ['user', 'phone_number', 'gender', 'date_of_birth', 'address', 'suburb', 'city', 'post_code']
    
    
    # Define an inline admin descriptor for Employee model
    # which acts a bit like a singleton
    class EmployeeInline(admin.StackedInline):
        model = UserProfile
        can_delete = False
        verbose_name_plural = 'profile'
    
    
    # Define a new User admin
    class UserAdmin(BaseUserAdmin):
        list_display = ('username', 'email', 'first_name', 'last_name', 'is_active', 'date_joined', 'is_staff')
        inlines = (EmployeeInline,)
    
    
    # Re-register UserAdmin
    admin.site.unregister(User)
    admin.site.register(User, UserAdmin)
    admin.site.register(UserProfile, UserProfileAdmin)
    

    参考文档:
    https://www.jianshu.com/p/0a34918160ab

  • 相关阅读:
    ES6 解构
    flutter
    selenium
    selenium
    python
    selenium
    selenium
    selenium
    selenium
    selenium- SMTP发送邮件
  • 原文地址:https://www.cnblogs.com/hupingzhi/p/12600659.html
Copyright © 2011-2022 走看看