Вот как выглядит мой models.py
:
class Foo(models.Model):
name = models.CharField(max_length=30)
class Bar(models.Model):
name = models.CharField(max_length=30)
class Hat(models.Model):
foo = models.ForeignKey(Foo, on_delete=models.CASCADE)
bar = models.ForeignKey(Bar, on_delete=models.CASCADE)
num = models.PositiveIntegerField(default=0)
class Meta:
unique_together = ('foo', 'bar')
Теперь в моем views.py
я хочу иметь функцию вроде:
def index(request):
foo = request.foo
bars = Bar.objects.all()
hats = Hat.objects.filter(foo=foo).all()
#return ???
что я хочу получить в качестве выходных данных индексной функции, это список кортежей типа [(bar_1, hat_1),(bar_2, hat_2), ...]
, где для каждого hat_i
у нас есть hat_i.bar == bar_i
, и если нет объекта Hat, связанного с bar_i
, я хочу, чтобы он был в паре с None.
Какой самый быстрый способ создать такой список в Django?