Пользовательский менеджер пользователей Django не вызывается в панели администратора

#django #django-models #django-users #django-managers

Вопрос:

Я реализую пользовательскую модель пользователя, используя AbstractBaseUser и BaseUserManaer .

 class UserManager(BaseUserManager):
    def create_user(self,username,password=None):


class User(AbstractBaseUser):
    ...

    objects = UserManager()
 

Когда я создаю новых пользователей из терминала, он работает по назначению, и пользователи регистрируются с помощью пользовательского менеджера пользователей. Но при использовании сайта администратора пользователь, похоже, использует какой-то другой менеджер пользователей, где он должен использовать пользовательский менеджер пользователей.

users/admin.py

 User = get_user_model()


class UserAdmin(BaseUserAdmin):
     ...

admin.site.register(User, UserAdmin)
 

Комментарии:

1. Вы добавили AUTH_USER_MODEL = 'users.User' что-нибудь в свой settings.py файл ? Если нет, добавьте его

2. Да, я уже добавил это. Он также отлично работает в оболочке, используя экземпляр get_user_model. проблема связана с сайтом администратора .

Ответ №1:

Наконец-то нашел решение. Чего мне не хватало, так это того, что modelform сайт in admin использует свой собственный save метод и update метод. Поэтому пришлось изменить и эти методы. Глупая я.