tengo modelos, más o menos así: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')
Quiero hacer una consulta que dice algo así como: "Obtener todos los de la ModelA en nombre del campo es igual a X que tiene un modelo ModelB con un nombre de X O sin nombre del modelo en absoluto"
Hasta ahora tengo esto:
esto me todas las ModelAs que tienen al menos un ModelB (y, en realidad, siempre será sólo uno) - pero si un ModelA no tiene un ModelBs relacionado, no lo hará t estar en el conjunto de resultados. Necesito que esté en el conjunto de resultados con algo como obj.modelb = None
¿Cómo puedo lograr esto?
En una nota: que realmente le ayudaría si utilizó nombres descriptivos como típico blog/o escenario post al menos Foo/Bar en lugar de ModelA/ModelB que no son intuitivos y simplemente difíciles de leer/distinguir. –