У меня есть следующее соотношение:Как отфильтровать последние объекты с помощью вложенного запроса в Django
class Product(foo):
name = models.CharField()
class Maintenance(foo):
product = models.ForeignKey(Product, related_name="maintenances")
start = models.DateField()
end = models.DateField()
Я хотел бы, чтобы фильтровать все продукты с последней (только последние) содержанием объектов, имеющие start
и end
атрибутами в определенном диапазоне дат.
Что-то вроде этого:
Product.objects.filter(maintenances__last__end__gte=today.now(), maintenances__last__end__lte=today.now()+datetime.timedelta(days=30))
Но как выбрать последнюю запись обслуживания для каждой записи, которую я имею, и убедиться, что фильтр основан только на ней? Если я использую 'last_', как вы предоставили, это не сработает. Он пытается использовать его как атрибут. –
Извините, просто ошибочно скопировано это ... Если я правильно понимаю ваш вопрос, он должен просто фильтровать «конец» объектов «Maintenance». Использование 'order_by' с' distinct' shoud просто дает вам последний объект для каждого 'product_id'. –
Это уточняется. Благодарю. –