#django #django-models #django-rest-framework #django-orm
#django #django-модели #django-rest-framework #django-orm
Вопрос:
Когда необходимо проверить значение поля экземпляра при использовании точки (.) для доступа к полю следующим образом.
class store(models.Model):
........
is_open = models.BooleanField(defrault=False)
........
class User(AbstractBaseUser):
........
store = models.ForeignKey(Store)
........
Мне нужно проверить значение is_open
в некотором API, я делаю следующим образом,
request.user.store.is_open
В этом случае django выполняет запрос выбора со всеми полями, но мне нужно только is_open
поле.
Как я могу выбрать только одно поле ( is_open
в данном случае) вместо выбора всех полей?
Комментарии:
1.
values
илиvalues_list
docs.djangoproject.com/en/3.0/ref/models/querysets /…2. @hansTheFranz Спасибо, но пользователь — это единственный экземпляр здесь, как я могу использовать
values
илиvalues_list
здесь?
Ответ №1:
Я подозреваю, что прирост производительности минимален, но попробуйте это:
is_open = User.objects.filter(id=request.user.id).values('store__is_open').first()['store__is_open']