2013-04-20 5 views
0

Я хочу знать, как я могу исправить код для получения постороннего значения из класса Categoria, мне нужно получить поле nombrecategoria, но на данный момент я не знаю, что случилось.Django Использование внешнего ключа

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

Вам не нужно для извлечения Categorias-объектов. Для того, чтобы добраться до поля, связанного Categorias-объекта используется {{ 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> 

Кроме того, я не знаю, почему вы используете этот список в таблице, это не имеет никакого смысла.

+0

oh человек благодарит много :) он отлично работает, также вы правильно используете список. иметь отличный день. – dcft

+0

Спасибо, не могли бы вы принять ответ? Люди, как правило, помогают больше и лучше, если у вас есть вопрос. ;) –

Смежные вопросы