是否可以将字段名称作为变量发送?
以下工作(注意:myqso 是一个基于具有名为 LocTypeNum 的字段的模型的过滤查询集):
myqsnew = myqso.annotate(newloctypenum=F('LocTypeNum')+10)
myqsop = [{'the_new_loctypenum':p.newloctypenum} for p in myqsnew]
但我想将 LocTypeNum 作为变量发送。是否有更好/更快的方法来制作计算字段并将变量用作字段名称?谢谢!
最佳答案
在这个例子中 LocTypeNum
只是一个字符串。所以你可以用变量替换:
somefield = "some_field"
SomeModel.objects.all().aggregate(somename=Sum(F(somefield))
您甚至可以将聚合名称作为变量路径:
SomeModel.objects.all().aggregate(**{somename: Sum(F(somefield)})
关于python - 是否可以将字段名称作为变量发送到 Django 的 .annotate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36463401/