我想从其他类复制一个属性。
class PedidoCliente(Pedido):
total_pagado = models.DecimalField(blank=True, max_digits=10, decimal_places=2,default = 0,verbose_name="Pagado $") # default 0 para el error for += int
barril_encargado = models.DecimalField(blank=True, default=0, max_digits=10, decimal_places=2,verbose_name="Barr. entregados")
fecha_entrega = models.DateField(verbose_name="Fecha Entrega")
class DetallePedidoCliente(DetallePedido):
comments = models.CharField(max_length=300, verbose_name="Comentarios")
precio_venta = models.DecimalField(max_digits=16, decimal_places=2, default = 0)
pedido = models.ForeignKey(PedidoCliente,on_delete=models.CASCADE)
fecha_entrega = the same from PedidoCliente
我是OPP的新人,如果这是一个愚蠢的问题,我很抱歉。
谢谢!
不应该查看另一个模型的镜像字段。这只会导致额外的工作。每次在另一个表中更新这个镜像字段时,都需要更新它,等等。
当我们已经使用外键巩固了两个表之间的关系时,它也不是很有用。
在Django中访问相关字段的数据是非常容易的。假设我们有一个名为instance
的DetallePedidoCliente
实例,我们可以通过外键访问相关模型的fecha_entrega
,如下所示:
instance.pedido.fecha_entrega
如果只是想要一个简单的方法来引用这个字段,可以考虑在模型中添加一个property
:
class DetallePedidoCliente(DetallePedido):
comments = models.CharField(max_length=300, verbose_name="Comentarios")
precio_venta = models.DecimalField(max_digits=16, decimal_places=2, default = 0)
pedido = models.ForeignKey(PedidoCliente,on_delete=models.CASCADE)
@property
def fecha_entrega(self):
return self.pedido.fecha_entrega
现在我们可以简单地访问这个字段:
instance.fecha_entrega