我有这个问题,很傻但是很好...我有这两个模型:

class Cliente(models.Model):
CUIT = models.CharField(max_length=50)
Direccion = models.CharField(max_length=100)
Razon_Social = models.CharField(max_length=100)

def __unicode__(self):
    return self.Razon_Social

class Factura(models.Model):
TIPO_FACTURA = (
    ('A', 'A'),
    ('E', 'E')
    )
tipo_Factura = models.CharField(max_length=1, choices= TIPO_FACTURA)
nombre_cliente = models.ForeignKey(Cliente)
fecha_factura = models.DateField()
IRI = models.IntegerField()
numero_De_Factura = models.IntegerField(max_length=50)
descripcion = models.CharField(max_length=140)
importe_Total= models.FloatField()
importe_sin_iva = models.FloatField()

def __unicode__(self):
    return "%s - %s" % (unicode(self.nombre_cliente), self.numero_De_Factura)


我正在列出每个客户的账单,当用户单击它时,我想显示一些有关账单的信息(西班牙语的Factura)以及一些有关客户的信息,例如其地址

这是我的views.py:

def verFactura(request, id_factura):
    fact = Factura.objects.get(pk = id_factura)
    cliente = Cliente.objects.filter(factura = fact)
    template = 'verfacturas.html'
    return render_to_response(template, locals())


我正在尝试获取此特定帐单的客户信息,以便我可以显示其信息,但是在模板中我什么都看不到:

<div >
   <p>{{fact.tipo_Factura}}</p>
   <p>{{fact.nombre_cliente}}</p>
   <p>{{cliente.Direccion}}</p>
</div><!-- /.box-body -->


这是我的网址:


  url(r'^ verFactura /(\ d +)$','apps.Administracion.views.verFactura',name ='verFactura'),


谁能告诉我该怎么做。显然我的代码有问题,因此我将感谢您的帮助。先感谢您

最佳答案

问题在于cliente不是Cliente实例,而是实例的查询集。每个factura仅具有一个cliente,因此您可以执行以下操作:

def verFactura(request, id_factura):
    fact = Factura.objects.get(pk = id_factura)
    cliente = Cliente.objects.get(factura = fact) # use `get` instead of `filter`
    template = 'verfacturas.html'

    extra_context = dict()
    extra_context['fact'] = fact
    extra_context['cliente'] = cliente

    return render_to_response(template, extra_context)

10-01 12:50