У меня разные приложения в моем проекте django. Я хочу сохранить независимое приложение для auth & auth, которое используется повторно во всех приложениях. Auth & приложение auth - это одно приложение с моей базовой пользовательской моделью. Этот пользователь должен войти в систему по электронной почте, чтобы я наследовал от AbstractBaseUser вместо расширения класса User. Теперь во всех приложениях вход в систему аналогичен, основные пользовательские атрибуты одинаковы; но некоторые приложения добавляют дополнительные поля, такие как «зарплата», другие используют модель как есть. Итак, каков наилучший способ повторного использования модели пользовательского пользователя, созданной в моем приложении для входа? Если я наследую конкретный класс, у меня будет 2 таблицы. Если я объявлю абстрактную тему пользовательского пользователя, как я буду использовать ее функциональные возможности, роли и разрешения?Django: как повторно использовать пользовательскую модель пользователя - наследуйте или расширяйте?
Django: как повторно использовать пользовательскую модель пользователя - наследуйте или расширяйте?
ответ
Я думаю, что лучший способ добиться того, что вы просите за это:
class Learners(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, unique=True)
nick = models.CharField(max_length=12, unique=True)
#Many to Many relationship with course
courses = models.ManyToManyField(Course, blank=True)
def __str__(self):
return self.user.get_full_name()
Если AUTH_USER_MODEL
устанавливается в пользовательской модели пользователя, унаследовав от AbstractBaseUser, что вы создали, как это: AUTH_USER_MODEL = 'courseSystem.MyUser'
в настройках .py для основного проекта Django. В моем примере courseSystem.MyUser
- это настраиваемый пользовательский класс.
Я делюсь этим с аналогичной ситуацией, описанной выше, над которой я работаю.
В приведенном выше примере, если вы должны были сделать пользовательский класс MyUser
как абстрактный, а затем наследовать Learners
класс от него:
class Learners(MyUser):
затем Обучающиеся класс больше не будет иметь класс models.Model
типа, но бетон Пользовательский класс для этого приложения, и в каждом случае, т. Е. Для каждого такого класса, не исполняющего абстрактный класс MyUser, вам придется перегрузить необходимые члены MyUser
, необходимые для конкретного класса пользователя для Django. Кроме того, поскольку вы используете AbstractBaseUser
и не распространяетесь на класс по умолчанию User
, вам нужно будет определить пользовательские формы пользователя и пользовательские менеджеры для своего пользовательского класса. Так что, если у вас есть конкретный класс MyUser
, как в приведенном выше примере, вы можете определить пользовательский User Manager и User Forms для MyUser
один раз и поддерживать связь один-к-одному с вашими моделями в разных приложениях. Но если вы сделаете класс MyUser
абстрактным, вы бы не определяли User Forms и User Managers для MyUser
, но отдельно для каждого вашего приложения, в котором вы формируете конкретный класс пользователя, наследуя этот абстрактный класс пользовательского пользователя.
https://docs.djangoproject.com/en/1.9/topics/auth/customizing/
- 1. Наследуйте модель пользователя по умолчанию django в моей модели
- 2. Как повторно использовать пользовательскую проверку в Django?
- 3. Следует ли определять собственную модель пользователя в django или использовать пользовательскую модель Django auth?
- 4. Что использовать пользовательский объект django или создать пользовательскую модель?
- 5. Как добавить поле в пользовательскую модель Django?
- 6. Как использовать пользовательскую маркерную модель в Django Rest Framework
- 7. Использовать пользовательскую модель CKeditor
- 8. Django: интеграция функций разрешений и групп в пользовательскую модель пользователя
- 9. создать новую модель или использовать модель пользователя?
- 10. Как добавить пользовательскую проверку в модель Django?
- 11. Как вставить данные в пользовательскую модель Django?
- 12. Как повторно использовать модель django в elasticsearch и neo4j?
- 13. Добавление полей в пользовательскую модель пользователя с Cookiecutter Django
- 14. Вы должны переименовать пользовательскую модель пользователя в Django 1.9?
- 15. Как расширить модель пользователя django?
- 16. Когда я буду использовать пользовательскую модель из Django?
- 17. Django: проблемы с переносом на пользовательскую модель
- 18. Пользовательская модель пользователя в Django?
- 19. Как повторно использовать модель в Tensorflow
- 20. Пользовательская пользовательская модель Django
- 21. Не удалось аутентифицировать пользовательскую модель в Django
- 22. Как правильно расширить django Модель пользователя
- 23. Django 1.8+ расширяет модель пользователя
- 24. Django, наследуйте модели. Сначала сначала сначала или не модельный класс?
- 25. Наследуйте модель с разными именами свойств JSON
- 26. Расширить модель пользователя от Django?
- 27. Composer package - использовать пользовательскую модель, если существует
- 28. Как добавить пользовательскую JS в модель Django admin
- 29. Перенести данные из исходной модели пользователя в пользовательскую модель пользователя в django 1.8
- 30. Как повторно использовать многоразовое приложение в Django
Это звучит, как вам нужно изменить аутентификации шаг входа в систему, чем ваши модели пользователей .. является то, что вариант? – Sayse
Спасибо за ответ Sayse, я должен сказать, что нет его, хотя, с тех пор мне придется определять модель пользователя везде, только для одного или двух дополнительных столбцов в нескольких местах. – rai
определите свою модель пользователя где-нибудь и импортируйте ее повсюду? – eldos