0

我想知道如何修复从类 Categoria 获取外部值的代码,我需要获取 nombrecategoria 字段,但目前我不知道出了什么问题。

模型.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

视图.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>
4

1 回答 1

0

您不需要获取类别对象。要访问您使用的相关类别对象的字段{{ dato.codigocategoria.nombrecategoria }}

视图.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>

另外,我不知道您为什么在表格中使用该列表,这没有任何意义。

于 2013-04-20T22:39:41.830 回答