У меня есть модели, более или менее, как это:Django LEFT JOIN?
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 OR без названия модели на всех»
до сих пор у меня есть это:
Это поможет мне все ModelAs, которые имеют по крайней мере один modelB (а в действительности это будет ВСЕГДА быть только один) - но если ModelA не имеет соответствующих ModelBs, это не будет t в результирующем наборе. Мне нужно, чтобы он был в наборе результатов с чем-то вроде obj.modelb = None
Как это сделать?
На стороне записки: что бы реально помочь, если вы использовали описательные имена, как типичный Блог/Post сценария или по крайней мере, Foo/Bar вместо ModelA/ModelB, которые не интуитивно понятны и просто трудно читать/различать. –