搜索Django Objects order_by(child_model_field)

时间:2015-02-23 14:13:24

标签: django django-models django-admin django-views

我的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()时,它应该以order_by(Schedule.start_time)返回旅程。像Journey.objects.all()。order_by(Schedule.journey)

是否可以在Django ORM中使用或者django提供此功能,或者我必须进行自定义查询才能执行此操作。

指导意见将会很明显

1 个答案:

答案 0 :(得分:2)

您可以尝试这样:

Journey.objects.all().order_by('schedule__journey')

查询子模型字段/反向查找的格式如下:

ParentModel.objects.all().order_by('lowercase_child_modelname__fieldname)')

有关详情,请点击此处:https://docs.djangoproject.com/en/1.7/topics/db/queries/#lookups-that-span-relationships