Django Order Concated Requestset - PullRequest
       5

Django Order Concated Requestset

0 голосов
/ 05 декабря 2018

Как я могу заказать свои сцепленные наборы запросов?Я могу сделать цикл for и печатать каждую дату

for r in requests:
    print(r.game.date)

, но не могу заказать набор запросов.

views.py

class Games(TemplateView):
    template_name = ...

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        user = CustomUser.objects.get(pk=self.request.user.pk)
        team = Team.objects.get(team=user)
        requests_single = Request.objects.filter(content_type=ContentType.objects.get_for_model(CustomUser)).filter(object_id=self.request.user.pk)
        requests_team = Request.objects.filter(content_type=ContentType.objects.get_for_model(Team)).filter(object_id=team.pk)
        requests = requests_single | requests_team
        requests.order_by('-game.date')
        context['requests'] = request
        return context

model.py

class Forderung(models.Model):
    game = models.ForeignKey(Spiel, on_delete=models.CASCADE, null=True)
    content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
    object_id = models.PositiveIntegerField()
    content_object = GenericForeignKey('content_type', 'object_id')

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Для представления объединения необходимо использовать синтаксис с двойным подчеркиванием.

requests = requests.order_by('-game__date')
0 голосов
/ 05 декабря 2018

order_by не сортирует набор запросов на месте, он возвращает новый набор запросов.Попробуйте:

requests = requests.order_by('-game.date')
...