2016-01-14 7 views
0

Я пытаюсь фильтровать данные в tepmplate таким образом:Джанго фильтр для шаблона

{% if devtypes %} 
<ul> 
    {% for devtype in devtypes %} 
    <li> <h3> {{devtype.name}} </h3> ({{devtype.desc}}) 
     <ul> 
     {% for device in devices %} 
     {% if device.devtype == devtype %} 
     <li><h4>{{device}}</h4></li> 
     {% endif %} 
     {% endfor %} 
     </ul> 
    </li> 
    {% endfor %} 
</ul> 
{% endif %} 

А вот мои модели:

class Devtype(models.Model): 
    pk_devtype=models.AutoField(primary_key=True) 
    name=models.CharField(max_length=30, blank=True, null=True) 
    desc=models.CharField(max_length=30, blank=True, null=True) 

    def __str__(self): 
     return self.name 

class Device(models.Model): 
    pk_device=models.AutoField(primary_key=True) 
    devtype=models.ForeignKey('Devtype', on_delete=models.CASCADE) 
    name=models.CharField(max_length=30, blank=True, null=True) 
    login=models.CharField(max_length=30, blank=True, null=True) 
    password=models.CharField(max_length=30, blank=True, null=True) 
    ip=models.CharField(max_length=20, blank=True, null=True) 
    desc=models.CharField(max_length=30, blank=True, null=True) 

    def __str__(self): 
     return self.name 

Я думаю, что мой путь не так, и я должен заменить эту часть

{% if device.devtype == devtype %} 

с чем-то вроде фильтра. Пожалуйста помоги.

+0

Ваш вопрос немного неясно, что это именно вы пытаетесь сделать? – Hybrid

+0

Мне нужно получить много записей в шаблоне (устройство для devtype). Мне нужен список devtypes и список устройств каждого devtype после каждого devtype. 'Code' CISCO переключатель 1 маршрутизатор 2 HUAWEI переключатель 3 маршрутизатор 4' code' –

+0

Покажите нам свой вид – Hybrid

ответ

4

Когда вы создаете внешний ключ, django автоматически создает обратное отношение; описанных в документации по адресу following relationships backward.

Вы должны использовать его в шаблоне, например:

{% if devtypes %} 
<ul> 
    {% for devtype in devtypes %} 
    <li> <h3> {{devtype.name}} </h3> ({{devtype.desc}}) 
     <ul> 
     {% for device in devtype.device_set.all %} 
     <li><h4>{{device}}</h4></li> 
     {% endfor %} 
     </ul> 
    </li> 
    {% endfor %} 
</ul> 
{% endif %} 
+0

Бурхан, большое вам спасибо! Это то что мне нужно! –

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