django - 动态地将计算列添加到查询集中

Fer*_*erg 5 django

我有一个数据库表,其中包含 4 个表示版本信息的整数列 - Major、Minor、Cust、Rev。

我想将它们表示为表单中的单个列,并带有相关的填充。所以:0,1,2,3 = [0.01.002.0003]。

我意识到有多种方法可以使用 SQL 来执行此操作,但我很好奇是否可以在 django 端执行此操作?所以,之后:

queryset = MyModel.objects.all()
Run Code Online (Sandbox Code Playgroud)

...然后我可以使用额外的计算字段扩展查询集吗?后来我传递要序列化的查询集,并且我需要在这个阶段出现计算字段,所以我认为属性不起作用。

gru*_*czy 4

annotate应该可以帮助你:

http://docs.djangoproject.com/en/dev/ref/models/querysets/#annotate-args-kwargs

  • 对于任何感兴趣的人,我最终解决这个问题的方法是编写一个自定义 JSON 序列化器。 (4认同)
  • 嗯 - 看起来注释特别关注聚合。在这种情况下,我对添加聚合列不感兴趣 - 这实际上更像是一个重新格式化问题。我找不到在这种情况下使用注释的示例。在阅读注释时,我确实发现注释字段没有被序列化,所以这可能意味着我无论如何都要在 SQL 端进行重新格式化。 (2认同)