Ошибка унаследованной пользователем модели django

У меня есть модель, унаследованная от модели Auth.User, таким образом: class UsuarioWeb(User): # больше полей И в Codeship при выполнении тестов происходит сбой с этой ошибкой:

django.db.migrations.exceptions.InvalidBasesError: Не удается разрешить базы для [] Это может произойти, если вы наследуете модели из приложения с миграциями (например, contrib.auth) в приложении без миграций; см. https://docs.djangoproject.com/en/1.9/topics/migrations/#dependencies для получения дополнительной информации (python3_venv)

Я понимаю ошибку, и ее можно решить с помощью OneToOneField. Итак, один вопрос: правильно ли я поступаю, наследуя таким образом? И другое, как решить эту ошибку таким образом?


person wololoooo    schedule 21.05.2016    source источник


Ответы (1)


Если вы создаете пользовательскую модель пользователя и не хотите использовать OneToOneField, вместо этого сделайте так, чтобы класс наследовал AbstractBaseUser. Этот класс включает только функции аутентификации. Однако, если вы хотите включить обычные поля модели User, сделайте свой пользовательский класс наследником AbstractUser. Пользовательские классы находятся в django.contrib.auth.models.

person techydesigner    schedule 21.05.2016
comment
большое тебе спасибо. Итак, я наследую от неправильной модели. - person wololoooo; 21.05.2016
comment
Как вы думаете, какой способ лучше? наследуйте от AbstractUser или добавьте OneToOneField. - person wololoooo; 21.05.2016
comment
Я лично использую OneToOneField. В основном это личные предпочтения. - person techydesigner; 21.05.2016
comment
@user2791312 user2791312 Если этот ответ помог, отметьте, что он ответил на ваш вопрос. Удачи с вашим проектом Django! - person techydesigner; 21.05.2016