Какие поля можно вызвать с помощью 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, ...)
Вернуться на верх