How to unite related objects in Django?

In my Django project I have two models and I need to get all related instances of another model suitable objects:

class Model1(models.Model):
    name = models.CharField(max_length=500)
    model2 = models.ForeignKey(
        'Model2',
        on_delete=models.CASCADE,
        related_name='models1',
    )

class Model2 (models.Model):
    name = models.CharField(max_length=500)

So I already have one implementation like this:

models2_ids = list(Model1.objects.filter(name='smth').values_list(
    'model2__id', 
    flat=True
))

# Then I want to get related Model2 instances
models2 = Models2.objects.filter(id__in=models2_ids)

Can I do it another way? Maybe using Django queries union?


Ответы (0 шт):