gpt4 book ai didi

python - 希望使用 Django ORM 行的每个值与标准值有所不同

转载 作者:行者123 更新时间:2023-12-01 04:51:46 24 4
gpt4 key购买 nike

这是我的 Django 模型

class MarkSheet(models.Model):
marks=models.IntegerField(null=True,blank=True)
....

使用 Django ORM 我想在查询集中创建额外的字段,其中包含所有学生的分数与用户给出的分数之间的差异的绝对值。例如用户给定的标记是

UserMark=76

我们的行包含

Marks
67
98
65

然后我在查询集中查找一些操作,这给了我一些像 ABS(Marks-UserMarks) 这样的操作

Marksheet.objects.filter(class="12").annotate(marks_diff=abs(F('Marks')-UserMarks))

输出应该是这样的

{"mark":67,"mark_diff":9}

最佳答案

大多数 SQL 服务器都支持 ABS() 函数,因此您可以使用 extra()方法:

Marksheet.objects.filter(class="12") \
.extra({'marks_diff': 'ABS(marks-%d)' % UserMarks})

关于python - 希望使用 Django ORM 行的每个值与标准值有所不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28275858/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com