variable template examples python django request outer-join

python - template - combinación externa de modelisation en django



import django template (1)

Las uniones externas se pueden ver como un hack porque SQL carece de "navegación".

Lo que tienes es una simple situación de enunciado si.

for line in someRangeOfLines: for col in someRangeOfCols: try: cell= FooVal.objects().get( col = col, line = line ) except FooVal.DoesNotExist: cell= None

Eso es lo que realmente es una combinación externa: una búsqueda intentada con un reemplazo NULO.

La única optimización es algo como lo siguiente.

matrix = {} for f in FooVal.objects().all(): matrix[(f.line,f.col)] = f for line in someRangeOfLines: for col in someRangeOfCols: cell= matrix.get((line,col),None)

Tengo una tabla de relaciones de muchos a muchos con algunos datos en la base de unión

una versión básica de mi modelo se ve así:

class FooLine(models.Model): name = models.CharField(max_length=255) class FooCol(models.Model): name = models.CharField(max_length=255) class FooVal(models.Model): value = models.CharField(max_length=255) line = models.ForeignKey(FooLine) col = models.ForeignKey(FooCol)

Estoy tratando de buscar todos los valores para una determinada línea con un valor nulo si el valor no está presente (básicamente, estoy tratando de mostrar la tabla fooval con valores nulos para los valores que no se han llenado) un sql típico sería

SELECT value FROM FooCol LEFT OUTER JOIN (FooVal JOIN FooLine ON FooVal.line_id == FooLine.id AND FooLine.name = "FIXME") ON FooCol.id = col_id;

¿Hay alguna manera de modelar la consulta anterior utilizando el modelo django

Gracias