Sortowanie po polu w liście z innej tabeli

0

Mam model Main gdzie mam pole

datas = models.ManyToManyField(
        Data,
        verbose_name=_('data'),
        related_name='main',
        blank=True,
    )

w modelu Data mam pola

place = models.ForeignKey(
        Place,
        verbose_name=_('place'),
        related_name='datas',
    )

points = models.DecimalField(
        _('points'),
        default=0,
        max_digits=5,
        decimal_places=3,
    )
    

w Place zaś interesuje nas tylko Id

I teraz muszę zrobić sortowanie po polu points, z tym, że jako jest to lista, to musi być model do sortowania wybierany za pomocą id z modelu place. Id place dostaje z frontów.
Muszę zwrócić z backendu posortowaną liste z paginacją modeli Main.
Siedzę nad tym już parę godzin i kompletnie nie mam pomysłu jak to rozwiązać. Próbowałem w pętli to ręcznie wyciągnąć i napisać straszny kod byle działało, ale musze zwrócić queryset, więc tutaj się wysypuje apka(próbowałem to zrobić w def get_queryset.

Nazwy są inne oczywiście w apce, tutaj tylko zmieniłem, aby nie było możliwości powiązania przez kogoś tych informacji z apką(pola mają specyficzne nazwy)

Edit: Cały case polage na tym, że muszę posortować po jednym modelu (Data) z listy modelów (dates), w zależności od Id modelu(Place).

48

Poczytaj o Django Managers

0

@ledi12: Nie jestem pewnie czy to pomoże. Ten endpoint też obsługuje przypadek kiedy z frontów nie jest zwracany id modelu Place. Próbuje wymyśleć coś na podstawie annotate

1 użytkowników online, w tym zalogowanych: 0, gości: 1