搜索 Django 对象 order_by(child_model_field)

Search Django Objects order_by(child_model_field)

我的 Django 应用程序中有两个模型。第一个是 Journey,第二个是 ScheduleSchedule 模型有一个 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