2013-09-12 3 views
1

В следующей модели:Джанго - Фильтр внешнего ключа в QuerySet

class Product(models.Model): 
    name = models.CharField(max_length = 255) 
    created_in = models.DateTimeField(auto_now=True) 

class Price(models.Model): 
    product = models.ForeignKey(Product) 
    price = models.DecimalField(max_digits=6, decimal_places=2) 
    created_in = models.DateTimeField(auto_now=True) 

Я хочу сделать что-то вроде этого:

продуктов = Product.objects.filter (price__gte = Десятичного (10)) #It рассмотрел все цены я просто нужна последняя одна

Как я запроса расшевелит uct, учитывая только последнюю цену «created_in»?

Спасибо!

+0

Вы, вероятно, хотите 'price__price__gte', как написано ваш запрос не будет делать то, что вы ожидаете. –

ответ

1

latest() является то, что вам нужно:

Возвращает последний объект в таблице, по дате, используя field_name представленного в поле даты.

products = Product.objects.filter(price__gte=Decimal(10)).latest('price__created_in') 
+0

Итак, следует ли использовать ... ".последнее ('price__created_in')"? Спасибо за ответ –

+0

@ user1331995 о, конечно, хороший момент. Благодарю. – alecxe

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