搜索 Django 对象 order_by(child_model_field)
Search Django Objects order_by(child_model_field)
我的 Django 应用程序中有两个模型。第一个是 Journey
,第二个是 Schedule
。
Schedule
模型有一个 Journey
模型的外键。这些模型的架构如下。
class Journey(models.Model):
pass
class Schedule(models.Model):
journey=models.ForeignKey(Journey)
day=models.CharField(max_lenth=3, choices=days)
start_time=models.TimeField()
def __unicode__(self):
return self.day
我想做的是,当我 运行 查询 Journey.objects.all() 时,它应该 return order_by(Schedule.start_time) 中的旅程。喜欢 Journey.objects.all().order_by(Schedule.journey)
在 Django ORM 中是否可行,或者 Django 是否提供此功能,或者我必须进行自定义查询才能执行此操作。
指导将是可观的
你可以这样试试:
Journey.objects.all().order_by('schedule__journey')
查询子模型field/reverselookup的格式是这样的:
ParentModel.objects.all().order_by('lowercase_child_modelname__fieldname)')
详情请看这里:https://docs.djangoproject.com/en/1.7/topics/db/queries/#lookups-that-span-relationships
我的 Django 应用程序中有两个模型。第一个是 Journey
,第二个是 Schedule
。
Schedule
模型有一个 Journey
模型的外键。这些模型的架构如下。
class Journey(models.Model):
pass
class Schedule(models.Model):
journey=models.ForeignKey(Journey)
day=models.CharField(max_lenth=3, choices=days)
start_time=models.TimeField()
def __unicode__(self):
return self.day
我想做的是,当我 运行 查询 Journey.objects.all() 时,它应该 return order_by(Schedule.start_time) 中的旅程。喜欢 Journey.objects.all().order_by(Schedule.journey)
在 Django ORM 中是否可行,或者 Django 是否提供此功能,或者我必须进行自定义查询才能执行此操作。
指导将是可观的
你可以这样试试:
Journey.objects.all().order_by('schedule__journey')
查询子模型field/reverselookup的格式是这样的:
ParentModel.objects.all().order_by('lowercase_child_modelname__fieldname)')
详情请看这里:https://docs.djangoproject.com/en/1.7/topics/db/queries/#lookups-that-span-relationships