什么是django中的“output_field”

时间:2017-09-22 10:50:23

标签: django-1.11

Django doc says用于聚合函数:

  

output_field - 表示返回值

的模型字段的可选参数

所以我希望下面的代码返回“True”。

MyModel.objects.annotate(foo=Max(Value("yes"), output_field=BooleanField())).first().foo

MyModel.objects.annotate(foo=Max("id", output_field=BooleanField())).first().foo

但是在第一种情况下返回字符串“yes”,在第二种情况下返回一些整数。

我知道我可以使用“演员”,但是有人可以告诉我,在这种情况下“output_field”有什么用?

1 个答案:

答案 0 :(得分:0)

在某些情况下,Django 需要明确知道某些字段中的数据类型。

例如,如果您尝试将此类查询集的结果提供给某个序列化程序(来自 Django REST Framework),您将收到错误并被迫提供输出字段。