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"))