Какие поля можно вызвать с помощью request.user в Django?
Простите за глупый вопрос, но я не могу его понять.
У меня есть представление для формы, основанное на классах. Я хочу сделать некоторые изменения, если request.user равен чему-то.
Я использовал ранее в некоторых других представлениях request.user.profile.leader, что дает мне булевый ответ. Это нормально.
Теперь в этом представлении, основанном на классе, я хочу использовать очень похожую вещь, но с другой моделью, как это: request.user.trust.group но это ничего мне не дает. Что я делаю не так?
Если вы не настроили свою пользовательскую модель, то profile будет отображаться в ней как обратный дескриптор поля один-к-одному в другой модели ( путем того, что related_name было установлено или выведено ), т.е. у вас будет что-то вроде
class Profile(Model):
user = models.OneToOneField(User, related_name="profile")
leader = models.BooleanField(...)
где-нибудь.
Если вы ожидаете, что там будет поле trust, то вам нужно что-то подобное:
class Trust(Model):
user = models.OneToOneField(User, related_name="trust")
group = ...
С другой стороны, если у вас есть полностью пользовательская модель пользователя, то эти атрибуты могут появиться непосредственно на ней:
class CustomUser(AbstractBaseUser):
profile = models.ForeignKey(Profile, ...)
trust = models.ForeignKey(Trust, ...)