Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 要使用Django ORM为行的每个值设置与标准值的差异吗_Python_Django - Fatal编程技术网

Python 要使用Django ORM为行的每个值设置与标准值的差异吗

Python 要使用Django ORM为行的每个值设置与标准值的差异吗,python,django,Python,Django,这是我的Django型号 class MarkSheet(models.Model): marks=models.IntegerField(null=True,blank=True) .... 使用Django ORM,我想在queryset中创建一个额外的字段,其中包含所有学生的分数和用户给出的分数之间的绝对差值。 例如,用户给定的标记是 UserMark=76 我们的行包含 Marks 67 98 65 然后我在QuerySet中查找一些操作,它给了我一些像ABS(Ma

这是我的Django型号

class MarkSheet(models.Model):
    marks=models.IntegerField(null=True,blank=True)
    ....
使用Django ORM,我想在queryset中创建一个额外的字段,其中包含所有学生的分数和用户给出的分数之间的绝对差值。 例如,用户给定的标记是

UserMark=76
我们的行包含

Marks
67
98
65
然后我在QuerySet中查找一些操作,它给了我一些像ABS(Marks UserMarks)这样的操作

输出应该是

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

大多数SQL Server都支持
ABS()
函数,因此您可以使用以下方法:

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