Django - 查询:如何"动态"解码整数字段值及其字符串值



也许这不是好的做法,但我想知道是否可以使用其字符串值解码整数字段值 我知道我应该有一个特定的模型作为同义词库链接......

我有一个模型我的模型 例如,我生成一个 QuerySet mymodel.objects.values('id','var2','var3','var4'( var3 是"是/否"答案的整数 (0/1(

是否可以用"是"或"否"而不是其整数值填充我的 QuerySet?

您可以对其进行注释,例如:

from django.db.models import Case, CharField, Value, When
QuerySet.objects.values('id', 'var2', 'var4',
new_var3=Case(
When(var3=1, then=Value('Yes')),
default=Value('No'),
output_field=CharField(),
)
)

请注意,您应该重命名变量。

话虽如此,使用.values(..).values_list(..)进行序列化并不是一个好主意。此外,它将对数据库执行文本处理,这通常不是数据库的核心任务。通常使用序列化程序[drf-doc] 来实现这一点。

最新更新