Джанго:Используя пользовательскую систему аутентификации, почему пользовательская модель всегда остается необходимой?

StackOverflow https://stackoverflow.com/questions/2292549

Вопрос

Я разрабатываю 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 и т.д.?

Это было полезно?

Решение

Что ж, повторное использование кода и функциональности может быть приятным побочным эффектом, но в принципе я не думаю, что это нарушено.

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

Дополнительная функциональность может быть добавлена на разных уровнях либо с помощью встроенных компонентов, таких как Группы или разрешения, либо с помощью чего-то другого, что вы создаете поверх себя, как вы делаете в своем примере.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top