簡體   English   中英

如何通過自定義值在 Django 中訂購查詢集?

[英]How can I order a queryset in Django by custom values?

我想根據我提供的值列表對查詢結果(由.filter 完成)進行排序。

我的數據庫中有一個重要性列,值是無、不重要、重要、非常重要。 但是當我進行查詢時,Django 返回第一行。 我想指定將“非常重要”放在第一位,將“重要”放在第二位,將“不重要”放在第三位,最后沒有。

當前查詢結果

1, word, not important
2, word2, none
3, word3, very important
4, word4, important

我要達到的查詢結果

3, word3, very important
4, word4, important
1, word, not important
2, word2, none

我怎樣才能下這個訂單?

您可以使用 Django model 字段的選擇選項和 map 值到 Z157DB7DF530023575E8ZBD6 的重要性。 然后它會更容易排序,也會在一定程度上提高性能。 有關實現的更多信息,請參閱官方文檔

您的 model 可能類似於以下示例:

class YourModel(models.Model):
    IMPORTANCE_CHOICES = [
        (1, 'VeryImportant'),
        (2, 'Important'),
        (3, 'NotImportant'),    
]
    your_field_name = models.IntegerField(
        choices=IMPORTANCE_CHOICES,
        default=0,
    )

請根據您的要求更改字段定義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM