Мне нужно получить QuerySet с отношениями «многие ко многим» с тем же количеством результатов, как если бы я выполнил запрос в базе данных, но не могу понять, как это сделать; Мне все равно, смогу ли я получить результаты как элемент QuerySet или как элемент значений, но мне все равно, чтобы получить такое же количество результатов.
Представьте себе следующий сценарий:
class Person(models.Model):
name = models.CharField()
class Car(models.Model):
name = models.CharField()
class House(models.Model):
people = models.ManyToMany(Person)
cars = models.ManyToMany(Car)
house_1 = House.objects.create()
house_2 = House.objects.create()
john = Person.objects.create(name='John')
mary = Person.objects.create(name='Mary')
house_1.people.add(john)
house_1.people.add(mary)
mike = Person.objects.create(name='Mike')
ferrari = Car.objects.create(name='Ferrari')
house_2.people.add(mike)
house_2.cars.add(ferrari)
'''
Expected search result, regardless of the result format (model instances or values):
------------------------------------
| House ID | Car | Person |
| 1 | | John |
| 1 | | Mary |
| 2 | Ferrari | Mike |
------------------------------------
'''
Как получить список значений со всеми тремя результатами, охватывающими несколько таблиц, как здесь?
Мне это нужно, чтобы я мог создать отчет, который может содержать пустые поля, поэтому дублированные результаты должны быть перечислены.
Спасибо!