有没有一种方法可以在django-nonrel中使用'order_by'在外键上返回数据库中的项目?Django-nonrel按foreignkey排序
全部细节如下:
#Models.py class Post(models.Model): article = models.TextField(help_text='Paste or type HTML in here') pub_date = models.DateField() .... class TagItems(models.Model): title = models.CharField(max_length=200) .... class TagRel(models.Model): the_post = models.ForeignKey('Post') the_tag = models.ForeignKey('Tag')
TagRel定义邮政和TagItems类之间的多对多关系。
我想获取每个标签的文章列表。
#Desire output My tag -my first post -my second post My second tag - my other post - another post
所有的已经很不错了,因为我使用以下方法来过滤数据:
def tagged_posts(): tag_items = TagItems.objects.all() li =[] for item in tag_items: tag_rel_item = TagRel.objects.filter(the_tag__pk = item.pk) li.append(tag_rel_item) return {'list_of_objects': li}
我使用DB-索引来定义db-indexes.py查询的过滤器部分。所有这些工作正常,但我想按发布日期排序。
Django文档告诉我用:
TagRel.objects.filter(the_tag__pk = item.pk).order_by('the_tag__pub_date')
但ORDER_BY( 'the_tag__pub_date')的部分不会出现由Django的nonrel支持。
下也适用于普通的Django:
TagRel.objects.filter(the_tag__pk = item.pk).order_by('the_post')
这工作,因为该帖子已经按日期模型中的排序。
但是这在django-nonrel中也不起作用。
所以我的问题是如何返回按日期排序的帖子(最新>最旧)?
在此先感谢
我也有同样的问题。解决方法是用信息创建一个文本字段,但我想避免这种情况。 – Lionel 2011-08-04 20:52:32