Django model數據排序


方法一: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屬性添加的每個字段都會產生你數據庫的開銷。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM