django orm 搜索字段间比较的查询 django F查询

需要使用django中的F
先看看模型,这是一个用户订阅记录模块,就和QQ会员记录那种似的:

class Subscribe(Object):
    download_total = models.IntegerField(default=0,)
    download_used = models.IntegerField(default=0,)
    expires_time = models.DateTimeField(default="")
    is_expires = models.BooleanField(default=False,)
    order = models.OneToOneField(to=Order, related_name="order", on_delete=models.PROTECT)
    product = models.ForeignKey(to="Product", related_name="subscribes",
                                on_delete=models.PROTECT,)
    user = models.ForeignKey(to="user.User", related_name="subscribes",
                             on_delete=models.PROTECT,)

    def __str__(self):
        return "{}".format(self.uuid)

    class Meta:
        db_table = "subscribe"
        verbose_name = verbose_name_plural = "订阅"

例如,要在SQL中执行的操作,需要用ORM来实现
SQL:

select * from subscribe where download_total > download_used

ORM:

from django.db.models import F
from .models import Test
test= Test.objects.filter(download_total__gt=F('download_used'))

当然F查询是个很强的功能,具体参见官方文档:

https://docs.djangoproject.com/en/2.2/ref/models/expressions/#f-expressions

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天马行空波

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值