python - 如何在 Django ORM 中获取常量列?
问题描述
我正在学习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
解决方案
执行您的代码时,我收到以下错误:
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),
))
推荐阅读
- vespa - 如何在 vespa.ai 中找到不同的记录?
- prismic.io - 棱镜 - 为组中的可重复元素设置最大值
- node.js - GCP Cloud 构建忽略超时设置
- jquery - 输入字段中的输入键上的多步进度条更改状态
- sql - 如何从其他地方选择具有不同 WHERE 语句的东西
- mysql - 如何根据 MySQL 中的列值删除重复行?
- reactjs - Webpack 4,babel 7,反应,打字稿:意外的令牌,预期的“,”
- powershell - 如何运行同时使用本地和提升权限的 powershell 脚本?
- java - 如何在控制器中使用 @RequestBody 将值映射到 DTO 时忽略 @JsonProperty 值
- c# - IHttpContextAccessor 中的声明为空