#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
метод. Поэтому пришлось изменить и эти методы. Глупая я.