【问题标题】:Filter by value from Db按 Db 中的值过滤
【发布时间】:2017-06-23 12:32:53
【问题描述】:

我需要根据每个对象的 db 中的某个值过滤所有对象

在 models.py 中:

class CurrencyLot(models.Model):
    seller = models.ForeignKey(User, on_delete=models.CASCADE)
    stock = models.PositiveIntegerField()
    order = models.PositiveIntegerField()
    lot_status =models.BooleanField()
    created_at = models.DateTimeField(auto_now_add=True, auto_now=False)
    updated_at = models.DateTimeField(auto_now_add=False, auto_now=True)

在 view.py 中:

def currency_list(request):
    lot_list = Lot.objects.all().filter(lot_status=True).filter(stock__gte=???)
    return render(request, 'lots/list.html', {"lot_list":lot_list})

需要通过order为每个对象调整stock__gte

没有for循环也可以吗?

通过for 循环,我可以检查这个并将append 更正批次到新的lot_list

【问题讨论】:

    标签: django django-models django-views django-filter


    【解决方案1】:

    是的,在 Django 中没有 for 循环也可以得到这个

    from django.db.models import F
    Lot.objects.filter(lot_status=True,stock__gte=F('order'))
    

    【讨论】:

    • 当我真的这样做时,我收到错误:异常值:未定义全局名称'min_order'
    • 现在的问题是它从所有对象中获取最小订单值并将所有对象过滤到该值:) 但不是每个对象订单到每个对象库存
    • @Hellbea 是的,更新了答案,这绝对可以。
    猜你喜欢
    • 2020-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    • 2016-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多