方法一:order_by函數
Track.objects.all().order_by('-id')
其中,'id'表示升序; '-id'表示降序。升序時可以不寫,是默認。
Track.objects.order_by('-id')
.all()可以省略。 默認查詢所有。 可以結合filter等函數一起使用 。
Track.objects.all().order_by('-id','title')
也可以多個字段進行排序。
方法二:Meta選項ordering
class Track(models.Model): album = models.ForeignKey(Album, related_name='tracks') order = models.IntegerField() title = models.CharField(max_length=100) duration = models.IntegerField() is_deleted = models.BooleanField(default=False) creator = models.CharField(max_length=100, null=True) class Meta: db_table = 'track' ordering = ('-id',)
ordering它是一個字符串的列表或元組。每個字符串是一個字段名,前面帶有可選的“-”前綴表示倒序。前面沒有“-”的字段表示正序。使用"?"來表示隨機排序。
ordering = ('-id',‘title’)
先按照‘id’倒序排列,再按照‘title’正序排列。
警告
排序並不是沒有任何代價的操作。你向ordering屬性添加的每個字段都會產生你數據庫的開銷。