Запрос Django с использованием ManytoManyField - PullRequest
0 голосов
/ 19 февраля 2019

Используя пример кода:

from django.db import models

class Person(models.Model):
    name = models.CharField(max_length=128)

    def __str__(self):
        return self.name

class Group(models.Model):
    name = models.CharField(max_length=128)
    members = models.ManyToManyField(Person, through='Membership')

    def __str__(self):
        return self.name

class Membership(models.Model):
    person = models.ForeignKey(Person, on_delete=models.CASCADE)
    group = models.ForeignKey(Group, on_delete=models.CASCADE)
    date_joined = models.DateField()

Как я могу получить имена последних 5 человек и порядок названий их групп по дате и дате?Что-то вроде:

"name1" "group1" "19/02/2019"
"name2" "group1" "19/02/2019"
"name1" "group2" "19/02/2019"
"name3" "group1" "18/02/2019"
"name4" "group2" "17/02/2019"

Я перепробовал много вариантов, но не могу этого сделать: S Заранее спасибо.

1 Ответ

0 голосов
/ 19 февраля 2019

Вы можете получить это, следуя

Membership.objects.values('person__name', 'group__name', 'date_joined').order_by(date_joined)[:5]
...