У меня есть таблица TransportationOrders. У каждого TransportOrder есть Маршрут .. и у каждого Маршрута есть Места.Заказ по многим атрибутам на Django Rest Framework
Что мне нужно, это список всех Всеобъекты TransportationOrders, но отсортированы по имени первого места, которое я должен посетить.
Мои модели упрощено:
class TransportationOrder(models.Model):
name = models.CharField(max_length=45, unique=True)
user = models.ForeignKey('auth.User')
description = models.CharField(max_length=300, blank=True, null=True)
route = models.ManyToManyField(Place, through='PlaceHasTransportationOrder')
class PlaceHasTransportationOrder(models.Model):
place = models.ForeignKey(Place, on_delete=models.CASCADE)
transportation_order = models.ForeignKey(TransportationOrder, related_name="route", on_delete=models.CASCADE)
order = models.IntegerField(default=1) #This indicate the order of visits
date = models.DateField()
class Place(models.Model):
name = models.CharField(max_length=45)
address = models.CharField(max_length=45, null=True, blank=True, default=None)
lat = models.FloatField(null=True, blank=True, default=None)
lon = models.FloatField(null=True, blank=True, default=None)
Я пытался определить метод на TransportationOrder модели, но это не работает Whe я стараюсь http:///url?ordering=first_place_name , потому что это упорядочение работает на уровне базы данных. Какой у меня вариант?
def first_place_name(self):
place = Place.objects.all().filter(placehastransportationorder__transportation_order=self, placehastransportationorder__order=1)
return place[0].name
Очень полезный ответ, и я сожалею о своем плохом объяснении. То, что я хочу знать, - это перечислить всех моих транспортников, все из них. Но отсортировано по названию места, которое я должен посетить первым. (Я собираюсь отредактировать, пытаясь быть более ясным) – Marcelo
Если вы принимаете вызов значения_list из моего окончательного вывода, это результат, который вы получите. Я допустил ошибку при печати мест через поле маршрутов, но заказы на транспортировку будут в желаемом порядке. – Neelik