-
使该对象相对于给定字段可排序,通常是
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。