Django模板中的if语句不起作用

时间:2013-08-29 20:13:22

标签: python django django-templates

我正在玩一个简单的地址簿应用程序,我想在联系人的DetailView中向联系人展示联系人。

在我的模板中:

<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>

我的观点:

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

在我的模特中:

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

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)

我的模板中的if语句有什么问题?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您应该比较公司本身,而不是名称。

更改

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

{% if company == contact.company %}