Джанго:Используя пользовательскую систему аутентификации, почему пользовательская модель всегда остается необходимой?
-
21-09-2019 - |
Вопрос
Я разрабатываю SAAS, и мне труднее всего разобраться в том, почему мне нужно использовать "User" для чего-то другого, кроме себя.Я не знаю почему, но мне становится не по себе от мысли, что я, как разработчик / администратор всего программного обеспечения, с полным доступом администратора Django (например, Eye of Sauron), имею тот же тип пользовательского объекта, что и "UserProfile" владельца "Учетной записи".Пожалуйста, помогите мне понять, почему это необходимо.
Пример:
class Account(models.Model): # represents copporate customer
admin = models.ForeignKey(User)
# other fields ...
class UserProfile(models.Model):
user = models.ForeignKey(User)
account = models.ForeignKey(Account)
Такое ощущение, что я смешиваю встроенную функциональность администратора с функциональностью пользователей-владельцев моих учетных записей.Это только для целей повторного использования таких элементов, как request.user и т.д.?
Решение
Что ж, повторное использование кода и функциональности может быть приятным побочным эффектом, но в принципе я не думаю, что это нарушено.
Пользователь представляет кого-либо, использующего ваш веб-сайт.На базовом уровне не имеет значения, кто этот человек или какие функции ему нужны - просто они делают запросы и их можно каким-то образом идентифицировать.
Дополнительная функциональность может быть добавлена на разных уровнях либо с помощью встроенных компонентов, таких как Группы или разрешения, либо с помощью чего-то другого, что вы создаете поверх себя, как вы делаете в своем примере.