Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.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 如何进行一个查询,过滤同一表中一列等于另一列的行?_Python_Django_Django Queryset - Fatal编程技术网

Python 如何进行一个查询,过滤同一表中一列等于另一列的行?

Python 如何进行一个查询,过滤同一表中一列等于另一列的行?,python,django,django-queryset,Python,Django,Django Queryset,假设我有一个模型,看起来像: class StockRequest(models.Model): amount_requested = models.PositiveIntegerField(null=True) amount_approved = models.PositiveIntegerField(null=True) 有没有办法进行django查询,向我显示在特定对象/行上请求的金额与批准的金额之间存在某种关系的所有请求 在SQL中,它将非常简单: select *

假设我有一个模型,看起来像:

class StockRequest(models.Model):
    amount_requested = models.PositiveIntegerField(null=True)
    amount_approved = models.PositiveIntegerField(null=True) 
有没有办法进行django查询,向我显示在特定对象/行上请求的金额与批准的金额之间存在某种关系的所有请求

在SQL中,它将非常简单:

select * from stockrequest where amount_requested = amount_approved;

在Django中,我不确定是否可以这样做,但我可以想象下面的情况(注意:语法完全是虚构的,不起作用)

是的,你可以。你可以这样做

语法是:

from django.db.models import F
StockRequest.objects.filter(amount_requested=F("amount_approved"))

注:我写完问题后立即找到了答案。因为我在任何地方都没有看到堆栈溢出,所以我将用这个答案来回答。

检查
F()
函数:

的可能重复
StockRequest.objects.filter(amount_requested="__amount_approved")
from django.db.models import F
StockRequest.objects.filter(amount_requested=F("amount_approved"))
from django.db.models import F
StockRequest.objects.filter(amount_requested=F("amount_approved"))
StockRequest.objects.filter(amount_requested__gt=F("amount_approved"))