Запрос Django, чтобы получить следующий предыдущий элемент по дате в категории - PullRequest
1 голос
/ 24 июня 2010

Первый постер к переполнению стека ...

Я подозреваю, что мой ответ заключается в следующем решении: Запрос Django, который получает самые последние объекты из разных категорий , но у меня возникают проблемы при полученииФункциональность annotate () в Django.

Я дошел до этого:

previous = Item.objects.filter(date_added__lte=item.date_added).filter(???)[0:1]

Мои товары часто имеют категории.Я пытаюсь выяснить, как использовать второй фильтр, чтобы проверить, что текущая категория элемента (на основе параметра url) находится в items.categories набора запросов, возвращаемого первым фильтром.

Может использоватьсянажмите в правильном направлении.

Спасибо.Дэн Дж.

Конечно.

class Category(models.Model):
    section = models.ForeignKey(Section)
    name = models.CharField(max_length=50)
    slug = models.SlugField()
    ....

class Item(models.Model):
    categories = models.ManyToManyField(Category)
    name = models.CharField(max_length=256)
    date_added = models.DateTimeField(default=datetime.datetime.today)
    ....

1 Ответ

1 голос
/ 25 июня 2010

ОК, я глупый. Не понимал, что это было так просто, как «category = category» для поиска поля mtm. Думаю, мне нужно было проверить, была ли категория «в» категориях.

previous_items = Item.objects.filter(date_added__lt=item.date_added).filter(categories=category)
...