[英]How to display in the django template information of a manytomany model
我正在練習 django 但我無法在模板中顯示數據庫中的以下信息。
我有這 3 個模型(采購訂單、移動、收據):
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 ORDER 可以有幾個 RELATED VOUCHERS,幾個 VOUCHERS 可以有不同的 PURCHASE ORDERS。
在模板中,我將顯示一個包含移動的表格,我想從中提供與該移動相關的采購訂單的信息以及與該采購訂單相關的證明:
我在想這樣的事情,但它不起作用,我完全不知道什么是獲取與模板中移動相關的采購訂單相關收據信息的最佳方式:
第二個是我提出無法解決的查詢的那個
{% 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.