Я разрабатываю SAAS и занимаюсь тем сложнее, чем занимаюсь, почему мне нужно использовать «Пользователь» для чего-либо другого, кроме меня. Я не знаю почему, но мне кажется, что я, как разработчик/администратор всего программного обеспечения, с полным доступом к Django Admin (например, Eye of Sauron), имеет тот же тип объекта User, что и «Учетная запись «Пользовательский профиль держателя» имеет. Пожалуйста, помогите мне понять, почему это необходимо.Django: Использование пользовательской системы AUTH, почему модель User всегда нужна?
Пример:
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 и т. Д.?
@ Andy Hume Все атрибуты: имя пользователя, имя_пользователя, имя_файла, адрес электронной почты, пароль, is_staff, is_active, is_superuser и т. Д. Нужно ли использовать все это при создании пользователя? Наверное, мне просто сложно понять, как все эти атрибуты могут вписаться в мою собственную систему. Должен ли я использовать все эти атрибуты? Если is_superuser = True, это не дает им полный доступ, если они просто набирают www.example.com/admin/? Я посмотрел на Django-Annoying, и у него есть AutoOneToOneField(), который создает пользователя для вас, но как насчет установки всех атрибутов? – orokusaki
Вам не обязательно использовать все атрибуты. Вы можете выявить как можно меньше или много, в зависимости от того, что вы хотите, чтобы определенный тип пользователя мог это сделать. Да, is_superuser = Истина должна быть зарезервирована только для вас самих и для тех немногих, кому она нужна. Пользователь «нормальный» имел бы значение False. Вы можете установить все атрибуты, хотя OneToOneField, если они вам нужны, например. profile.user.last_name = "Jones" –