我正在练习django,但我无法在模板中显示数据库中的以下信息。
我有这三个模型(采购订单,运动,收据):
class Ordenes_Compra(models.Model):
orden_compra=models.IntegerField(primary_key=True)
proveedor=models.ForeignKey(Proveedores, on_delete=models.CASCADE)
comedor=models.ForeignKey(Centros, on_delete=models.CASCADE)
fecha_documento=models.DateField()
fecha_entrega=models.DateField()
class Meta():
verbose_name='Orden de compra'
verbose_name_plural="Ordenes de compra"
class Movimientos(models.Model):
movimientos = [
('ING', 'INGRESO'),
('SAL', 'SALIDA'),
]
estados = [
('PRO', 'PROCESADO'),
('ANA', 'ANALIZADO'),
('PEN', 'PENDIENTE'),
('CAN', 'CANCELADO'),
]
cantidad_um=models.DecimalField(decimal_places=3, max_digits=20)
precio_por_um=models.DecimalField(decimal_places=3, max_digits=20)
mat_um=models.ForeignKey(Materiales, on_delete=models.CASCADE, editable=True)
orden_compra_mov=models.ForeignKey(Ordenes_Compra,on_delete=models.CASCADE)
tipo_movimiento=models.CharField(max_length=3, choices=movimientos, blank=True, null=True)
estado_movimiento=models.CharField(max_length=3, choices=estados, blank=True, null=True)
class Meta():
verbose_name='Movimiento'
verbose_name_plural="Movimientos"
class Imagenes_Comprobantes_Moviemientos (models.Model):
imagen_factura=models.ImageField(null=True, blank=True)
factura=models.CharField(max_length=20)
orden_compra_imagen=models.ManyToManyField(Ordenes_Compra)
class Meta():
verbose_name='Comprobante'
verbose_name_plural="Comprobantes"
每个采购订单可以有多个相关凭证,多个凭证可以有不同的采购订单。
在模板中,我将显示一个带有运动的表,从中我想给出与该运动相关的PURCHASE ORDERS和与该PURCHASE ORDERS相关的PROOFS的信息:
我在想这样的东西,但它不起作用,我完全迷失在什么是最好的方式来获取与模板中运动相关的采购订单相关的收据信息:
第二个FOR是我所做的查询不能解析的那个
{% for registro in movimientos %}
<tr>
<td>{{registro.cantidad_um|floatformat:2}}</td>
<td>{{registro.orden_compra_mov.orden_compra}}</td>
<td>{{registro.orden_compra_mov.comedor.nombre_centro}}</td>
<td>
{% for comprobante in registro.orden_compra_mov.orden_compra %}
{{comprobante}}
{% endfor %}
</td>
谢谢你的帮助!
(如果有必要,我离开视图)
def movimientos(request):
movimientos = Movimientos.objects.annotate(total=F('precio_por_um') * F('cantidad_um'))
return render(request, 'app/movimientos.html', {'movimientos':movimientos})
希望在模板中看到来自postgresql数据库的多对多关系的数据
<代码>代码>
我能够解决它,问题是通过related_name访问反比关系。
我留下了文档链接:DJANGO documentation