У меня есть модели, более или менее такие:
class ModelA(models.Model):
field = models.CharField(..)
class ModelB(models.Model):
name = models.CharField(.., unique=True)
modela = models.ForeignKey(ModelA, blank=True, related_name='modelbs')
class Meta:
unique_together = ('name','modela')
Я хочу сделать запрос, который говорит что-то вроде: «Получить все ModelA, где имя поля равно X, с моделью ModelB с именем X ИЛИ без имени модели вообще» *
Пока у меня есть это:
ModelA.objects.exclude(field=condition).filter(modelsbs__name=condition)
Это даст мне все ModelAs, у которых есть хотя бы одна модель B (и на самом деле она будет ВСЕГДА только одной), но если ModelA не имеет связанных ModelB, она не будет в наборе результатов. Мне нужно, чтобы это было в наборе результатов с чем-то вроде obj.modelb = Нет
Как мне это сделать?