2017-02-06 20 views
0

я нужно фильтровать все объекты от некоторого значения из БД для каждого объектаФильтр по значению из 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}) 

необходимо заполнить stock__gte по order для каждого объекта.

Возможно без for петли?

С for петлей я могу проверить это и append корректные много на новый lot_list

ответ

1

Да, это возможно, чтобы получить это без цикла в Django

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

, когда я правда сделать это я получил сообщение об ошибке: Исключительное значение: \t глобальное имя «min_order» не определено – Hellbea

+0

. Плохо, я обновил свой ответ, пожалуйста, проверьте. – MicroPyramid

+0

Теперь проблема в том, что он берет минимальное значение заказа от всего объекта и фильтрует весь объект до этого значения :), но не каждый заказ объекта на каждый предметный запас – Hellbea

 Смежные вопросы

  • Нет связанных вопросов^_^