Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用~<;~追加订购_Python_Django - Fatal编程技术网

Python 使用~<;~追加订购

Python 使用~<;~追加订购,python,django,Python,Django,我正在尝试使用PostgreSQL作为后端数据库,按字母顺序排列非英语作者列表 这些是我的模型: class Alphabet(models.Model): letter = models.CharField(max_length=2) letter_spell = models.CharField(max_length=3) order = models.SmallIntegerField() def __unicode__(self

我正在尝试使用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 ~<~
非常感谢您的帮助。

您可以编写自定义或默认的。默认排序的原始代码位于
https://github.com/django/django/blob/master/django/db/models/sql/compiler.py
get\u ordering()
函数中。我看不到在查询中使用子句轻松添加
的任何方法

顺便说一下,如果Django没有正确订购,可能是一个bug

a = Alphabet.objects.all().prefetch_related('author_set')