DJANGO:如何复制其他类的属性?



我想从其他类复制一个属性。

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中访问相关字段的数据是非常容易的。假设我们有一个名为instanceDetallePedidoCliente实例,我们可以通过外键访问相关模型的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

最新更新