#python #django
#python #django
Вопрос:
Я изучаю ORM. Однако есть некоторые вещи, которые я не понимаю даже после прочтения документации.
Как мне получить постоянный столбец в Django ORM?
SQL здесь.
select *, 'a' as a from book;
Это набор запросов, который я пробовал
Book.objects.annotate(a=Value('a'))
Ошибка здесь.
django.core.exceptions.FieldError: Cannot resolve expression type, unknown output_field
Ответ №1:
При выполнении вашего кода я получаю следующую ошибку:
FieldError('Cannot resolve expression type, unknown output_field')
Это означает, что django не знает тип, к которому должно привести ваше аннотированное поле.
Чтобы исправить это, вам нужно обернуть аннотацию в ExpressionWrapper
:
from django.db.models import Value, ExpressionWrapper
Book.objects.annotate(a=ExpressionWrapper(
Value('a'),
output_field=models.CharField(max_length=45),
))
Комментарии:
1. Успешно. Большое вам спасибо.