我想知道如何修复从类别中获取外来值的代码,我需要获得nombrecategoria字段,但目前我不知道什么是错的。
models.py
class Subcategorias(models.Model):
codigosubcategoria = models.CharField(max_length=7, unique=True)
nombresubcategoria = models.CharField(max_length=30)
descripcionsubcategoria = models.TextField(blank=True)
codigocategoria = models.ForeignKey('Categorias')
def __unicode__(self):
return self.codigosubcategoria
class Categorias(models.Model):
codigocategoria = models.CharField(max_length=7, unique=True)
nombrecategoria = models.CharField(max_length=30)
descripcioncategoria = models.TextField(blank=True)
def __unicode__(self):
return self.codigocategoria
views.py
def lista_subcategorias(request):
subcategorias = Subcategorias.objects.all()
categorias = Categorias.objects.all()
return render_to_response('lista_subcategorias.html',{'datos':subcategorias, 'categorias':categorias}, context_instance=RequestContext(request))
lista_subcategorias.html
<H2>Subcategorias Registradas</H2>
<table border=1>
<tr><td>codigo</td>
<td>Nombre</td>
<td>Descripcion</td>
<td>Categoria</td>
</tr>
<tr>
<ul>
{% for dato in datos %}
<td><B>{{dato.codigosubcategoria}}</B></td>
<td><b>{{dato.nombresubcategoria}}<b></td>
<td><b>{{dato.descripcionsubcategoria}}<b></td>
{% for item in categorias %}
{% if item.codigocategoria == dato %}
<td><B>{{item.nombrecategoria}}</B></td>
{% endif %}
{% empty %}
<li>empty</li>
{% endfor %}
{% empty %}
<li>empty</li>
{% endfor %}
</tr>
</ul>
</table>
答案 0 :(得分:0)
您无需获取分类对象。要访问相关分类对象的字段,请使用{{ dato.codigocategoria.nombrecategoria }}
views.py
def lista_subcategorias(request):
subcategorias = Subcategorias.objects.all()
return render_to_response('lista_subcategorias.html',{'datos':subcategorias}, context_instance=RequestContext(request))
lista_subcategorias.html
<H2>Subcategorias Registradas</H2>
<table border=1>
<tr><td>codigo</td>
<td>Nombre</td>
<td>Descripcion</td>
<td>Categoria</td>
</tr>
<tr>
{% for dato in datos %}
<td><b>{{ dato.codigosubcategoria }}</b></td>
<td><b>{{ dato.nombresubcategoria }}</b></td>
<td><b>{{ dato.descripcionsubcategoria }}</b></td> <!-- don't forget to close your tags -->
<td><b>{{ dato.codigocategoria.nombrecategoria }}</b></td>
{% empty %}
<td colspan="4">empty</td>
{% endfor %}
</tr>
</table>
另外,我不知道你为什么在表格中使用该列表,这没有任何意义。