我正在尝试使用 PostgreSQL 作为后端数据库按字母顺序排列非英语作者列表。
这些是我的模型:
class Alphabet(models.Model):
letter = models.CharField(max_length=2)
letter_spell = models.CharField(max_length=3)
order = models.SmallIntegerField()
def __unicode__(self):
return self.letter
class Meta:
ordering = ['order']
class Author(models.Model):
slug = models.CharField(max_length=75)
name = models.CharField(max_length=50)
biography = models.TextField(blank=True)
...
alphabet = models.ForeignKey(Alphabet)
def __unicode__(self):
return self.name
class Meta:
ordering = ['name']
不幸的是,这并没有正确订购它们。
所以我去了终端,输入:
SELECT * FROM authors ORDER BY name
没有给出想要的结果。但是,这是有效的:
SELECT * FROM authors ORDER BY name USING ~<~
那么如何将它附加到我的 ORDER BY 子句中呢?
请注意,我的视图代码如下:
a = Alphabet.objects.all().prefetch_related('author_set')
您的帮助将不胜感激。