Django查询按类别中的日期获取下一个上一个项目

时间:2010-06-23 20:34:29

标签: django annotations django-urls

Stack Overflow的第一次海报......

我怀疑我的答案在于这个解决方案:     Django Query That Get Most Recent Objects From Different Categories 但我无法“获得”Django的annotate()功能。

我已经走到这一步了:

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

我的物品与分类很多。我试图找出如何使用第二个过滤器来测试项目的当前类别(基于url参数)是否在第一个过滤器返回的查询集的items.categories中。

可以朝正确的方向推进。

感谢。 丹J。

当然。

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 个答案:

答案 0 :(得分:1)

好的,我很傻。 没有意识到它对于mtm字段查找就像'categories = category'一样简单。以为我必须检查类别是否属于“类别”。

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