Фильтрация объектов с обратной зависимостью
Я пытаюсь построить отчет: мне необходимо сперва перечислить все устройства devises, а затем отфильтровать группы в которые они входят. Проблема в том, что у меня получается обратная зависимость, то есть related_name='gpu' расположено в другой таблице, поэтому я не знаю, как отфильтровать группы. Подскажите, пожалуйста, как это делать?
P.S.: Изначально я пытался сделать наоборот, первичным сделать группы, но проблема оказалась в том, что я потерял устройства, которые не входят ни в какие группы.
devises = GasPumpingUnit.objects.all()
for device in devises:
groups = Group.objects.filter(id_group= ... )
models.py
class Device(models.Model):
id_devise = models.AutoField(primary_key=True)
name_devise = models.CharField(max_length=256)
id_station = models.ForeignKey('Station', models.DO_NOTHING, blank=True, null=True,
related_name='related_name_cs')
def __str__(self):
return self.name_devise
class Meta:
db_table = 'Devise'
verbose_name = 'Агрегат'
verbose_name_plural = 'Агрегаты'
class Group(models.Model):
id_group = models.AutoField(primary_key=True)
id_filial = models.ForeignKey('Filial', models.DO_NOTHING, related_name='filial')
id_station = GroupedForeignKey(Station, "id_filial", on_delete=models.SET_NULL, null=True, related_name='cs')
id_devise = GroupedForeignKey(Devise, "id_station", on_delete=models.SET_NULL, blank=True, null=True, related_name='gpu')
name_group = models.CharField(max_length=256)
def __str__(self):
return self.name_group
class Meta:
db_table = 'Group'
verbose_name = 'Группа работ'
verbose_name_plural = 'Группы работ'