user2496550
user2496550

Reputation: 603

If-statement in Django Template does not work

I playing around with a simple addressbook application and I'd like to show the company of a contact in a DetailView of a contact.

In my template:

<table class="table table-bordered table-condensed" style="width:50%;">
    {% for company in companies %}
    {% if company.name == contact.company %}
    <tr>
      <td>{{ company.name }}</td>
      <td>{{ company.street }}</td>
      <td>{{ company.plz }}</td>
      <td>{{ company.city }}</td>
    </tr>
    {% endif %}
    {% endfor %}
</table>

My view:

class ContactView(DetailView):
    model = Contact
    template_name = 'contact.html'
    def get_context_data(self, **kwargs):
        context = super(DetailView, self).get_context_data(**kwargs)
        # Companies                                                                                                                               
        context['companies'] = Company.objects.all()
        # Return                                                                                                                                    
        return context

In my models:

class Company(models.Model):
    name = models.CharField(max_length=255,)

and

class Contact(models.Model):
    first_name = models.CharField(max_length=255, blank=True, null=True)
    last_name = models.CharField(max_length=255,)
    company = models.ForeignKey(Company, blank=True, null=True)

What is wrong with the if statement in my template?

Thanks for your help in advance!

Upvotes: 0

Views: 6929

Answers (1)

dgel
dgel

Reputation: 16786

You should compare the company itself, not the name.

Change

{% if company.name == contact.company %}

to

{% if company == contact.company %}

Upvotes: 2

Related Questions