mercredi 13 janvier 2016

django filter for template

I try to filter data in tepmplate this way:

{% 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 %}

And here are my models:

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

I think that my way is wrong and I should replace this part

{% if device.devtype == devtype %}

with something like a filter. Please help.

Aucun commentaire:

Enregistrer un commentaire