-
使該對象相對於給定字段可排序,通常是
ForeignKey
。這可用於使相關對象相對於父對象可排序。例如,如果Answer
與Question
對象相關,並且一個問題有多個答案,並且答案的順序很重要,您可以這樣做:from django.db import models class Question(models.Model): text = models.TextField() # ... class Answer(models.Model): question = models.ForeignKey(Question, on_delete=models.CASCADE) # ... class Meta: order_with_respect_to = 'question'
設置
order_with_respect_to
時,提供了兩種額外的方法來檢索和設置相關對象的順序:get_RELATED_order()
和set_RELATED_order()
,其中RELATED
是小寫的模型名稱。例如,假設一個Question
對象有多個相關的Answer
對象,返回的列表包含相關Answer
對象的主鍵:>>> question = Question.objects.get(id=1) >>> question.get_answer_order() [1, 2, 3]
Question
對象的相關Answer
對象的順序可以通過傳入Answer
主鍵列表來設置:>>> question.set_answer_order([3, 1, 2])
相關對象也有兩個方法
get_next_in_order()
和get_previous_in_order()
,可用於按正確順序訪問這些對象。假設Answer
對象按id
排序:>>> answer = Answer.objects.get(id=2) >>> answer.get_next_in_order() <Answer: 3> >>> answer.get_previous_in_order() <Answer: 1>
本文介紹 django.db.models.Options.order_with_respect_to
的用法。
聲明
Options.order_with_respect_to
order_with_respect_to
隱式設置 ordering
選項
在內部,order_with_respect_to
添加了一個名為 _order
的附加字段/數據庫列,並將模型的
選項設置為該字段。因此,ordering
order_with_respect_to
和ordering
不能一起使用,並且每當您獲得此模型的對象列表時,都會應用由order_with_respect_to
添加的排序。
更改order_with_respect_to
因為 order_with_respect_to
添加了一個新的數據庫列,所以如果您在初始
之後添加或更改 migrate
order_with_respect_to
,請務必進行並應用適當的遷移。
相關用法
- Python Django Options.ordering用法及代碼示例
- Python Django Options.verbose_name用法及代碼示例
- Python Django Options.app_label用法及代碼示例
- Python Django Options.index_together用法及代碼示例
- Python Django Options.verbose_name_plural用法及代碼示例
- Python Django Options.constraints用法及代碼示例
- Python Django Options.get_latest_by用法及代碼示例
- Python Django Options.permissions用法及代碼示例
- Python Django Options.get_field用法及代碼示例
- Python Django Options.db_table用法及代碼示例
- Python Django Options.indexes用法及代碼示例
- Python Django Options.get_fields用法及代碼示例
- Python Django Options.unique_together用法及代碼示例
- Python Django OpClass用法及代碼示例
- Python Operator.countOf用法及代碼示例
- Python Django Ord用法及代碼示例
- Python Django OGRGeometry.extent用法及代碼示例
- Python Django OGRGeomType.name用法及代碼示例
- Python Django OGRGeometry.json用法及代碼示例
- Python Django OGRGeometry.point_count用法及代碼示例
- Python Django OGRGeometry.gml用法及代碼示例
- Python Django OGRGeometry.dimension用法及代碼示例
- Python Django OGRGeometry.hex用法及代碼示例
- Python Django OGRGeometry.srs用法及代碼示例
- Python Django OGRGeomType.django用法及代碼示例
注:本文由純淨天空篩選整理自djangoproject.com大神的英文原創作品 django.db.models.Options.order_with_respect_to。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。