我有如下:
class FacturasMonthArchiveView(MonthArchiveView):
queryset = Factura.objects.all()
date_field = "pedido__fecha_pedido"
make_object_list = True
allow_future = True
template_name = 'ventas/facturas.html'
context_object_name = 'facturas_list'
我在表pedido
中有一个字段Factura
,它引用了包含许多信息的订单,其中一个字段是fecha_pedido
,我希望将其用于通用视图{{ 1}},把它放在MonthArchiveView
不起作用你怎么看它所以我不知道我怎么能这样做,任何想法?
问候!
使用两个模型进行编辑:
Pedido
pedido__fecha_pedido
Factura
class Pedido(models.Model):
referencia = models.CharField(max_length=255)
cliente = models.ForeignKey(Cliente,related_name="cliente",on_delete=models.PROTECT)
fecha_pedido = models.DateField()
fecha_entrega = models.DateField()
agencia_envio = models.ForeignKey(Envio, related_name="entrega",blank=True,null=True)
producto = models.ManyToManyField(Producto, through='Detalle_Pedido')
pendiente_de_factura = models.BooleanField(default=False)
def __unicode__(self):
return self.referencia
def save(self, *args, **kwargs):
super(Pedido, self).save(*args,**kwargs)
class Meta:
ordering = ["referencia","fecha_pedido"]
编辑:回溯错误
class Factura(models.Model):
iva = models.FloatField(default=0.0)
pedido = models.ForeignKey(Pedido, related_name="pedido_factura")
def __unicode__(self):
return "Factura -> ",self.pedido.referencia
def save(self, *args, **kwargs):
super(Detalle_Pedido, self).save(*args,**kwargs)
class Meta:
ordering = ["pedido"]
答案 0 :(得分:0)
原因是默认方法_make_date_lookup_arg使用
model._meta.get_field(self.get_date_field())
检查模型字段,这就是为什么你可能会得到" FieldDoesNotExist"。
您可以覆盖" _make_date_lookup_arg"方法,以便视图类看起来像这样:
class FacturasMonthArchiveView(MonthArchiveView):
queryset = Factura.objects.all()
date_field = "pedido__fecha_pedido"
make_object_list = True
allow_future = True
template_name = 'ventas/facturas.html'
context_object_name = 'facturas_list'
def _make_date_lookup_arg(self, value):
return value
虽然我不知道这将如何影响代码的其余部分。