Using Django auth UserAdmin for a custom user model

前端 未结 6 1201
甜味超标
甜味超标 2020-11-30 17:48

From the Django.Contrib.Auth docs:

Extending Django’s default User If you’re entirely happy with Django’s User model and you just w

6条回答
  •  广开言路
    2020-11-30 18:10

    Another similar solution (Took from here):

    from __future__ import unicode_literals
    
    from django.contrib import admin
    from django.contrib.auth.admin import UserAdmin
    from django.contrib.auth.models import AbstractUser
    from django.utils.translation import ugettext_lazy as _
    
    from .models import User
    
    
    class UserAdminWithExtraFields(UserAdmin):
    
        def __init__(self, *args, **kwargs):
            super(UserAdminWithExtraFields, self).__init__(*args, **kwargs)
    
            abstract_fields = [field.name for field in AbstractUser._meta.fields]
            user_fields = [field.name for field in self.model._meta.fields]
    
            self.fieldsets += (
                (_('Extra fields'), {
                    'fields': [
                        f for f in user_fields if (
                            f not in abstract_fields and
                            f != self.model._meta.pk.name
                        )
                    ],
                }),
            )
    
    
    admin.site.register(User, UserAdminWithExtraFields)
    

提交回复
热议问题