使用.order_by('标题')的Django查询没有按字母顺序排序,按日期排序更改

时间:2013-03-19 17:16:47

标签: python database django sqlite

在我的Django应用程序中使用以下模型:

class Story(models.Model):
#1:1 Fields
    title = models.CharField(max_length=100, unique=True)
    tagline = models.TextField(blank=True, null=True)
    contents = models.TextField()
    updated = models.DateTimeField(auto_now_add=True)
    slug = models.SlugField(unique=True)
    full_length_book = models.BooleanField(default=False)
    publish_now = models.BooleanField(default=False)
    date_added = models.DateTimeField('date added to archive')
    def __unicode__(self):
        return self.title
    class Meta:
        verbose_name_plural = "Stories"
        ordering = ['title']

我有几个查询来自此模型的数据并使用.order_by('title'),例如:

newlist = Story.objects.filter(tag=tag, publish_now=True).order_by('title')

问题:在查询结果中,以及当我在故事组的django admin中使用“排序列”箭头时,它按照上次更改的顺序列出故事,并在该排序中按字母顺序排列。我需要按照字母顺序首先按照标题排序故事。为什么它最近在列表末尾放置了更改的条目?

我可能误解了一些关于SQLite的东西 - 即使我进入数据库管理器并调用SELECT * FROM table_name ORDER BY LOWER(title),订单仍然是先更新,然后按字母顺序排在其中。

编辑 SQL Django正在调用如下:

'SELECT "app_story"."id", "app_story"."title", "app_story"."tagline", "app_story"."contents", "app_story"."updated", "app_story"."slug", "app_story"."full_length_book", "app_story"."publish_now", "app_story","date_added" FROM "app_story" ORDER BY "app_story"."title" ASC'

这看起来应该按标题排序,所以我仍然不知道为什么订单会在列表末尾出现新编辑的项目。

0 个答案:

没有答案