Django ORM:根据具体值从m2m按最小值排序

时间:2016-04-07 17:24:40

标签: sql django orm

我有4个模特:

用户,多个地点(s)他居住的地方。每个地点都有多个附近的 MetroStation 。 然后,我在每个地铁站的所有地方都有时间( MetroTimes )。

class User(models.Model):
    pass

class Place(models.Model):

    user = models.ForeignKey(User)
    metro_stations = models.ManyToManyField('geo.MetroStation', related_name='places')

class MetroStation(models.Model):
    pass

class MetroTimes(models.Model):

    metro_station_1 = models.ForeignKey(MetroStation, related_name='metro_stations_1')
    metro_station_2 = models.ForeignKey(MetroStation, related_name='metro_stations_2')

    time = models.IntegerField()

任务是按所有用户名中的最近 MetroStation ,按时间路径( MetroTimes )对特定 MetroStation 对所有用户进行排序 放置

我无法解决的魔法:

specific_metro_station = MetroStation.objects.get(id=1)

User.objects.all().order_by(closest_metro_station_in_closest_user's_place_by_metro_time_to=specific_metro_station)

Big Thx寻求帮助!

1 个答案:

答案 0 :(得分:0)

我是使用Django' Conditional ExpressionsQuery Expressions

完成的

我的案例中的代码:

README.md