2013-08-29 92 views
0

我玩弄了一个简单的地址簿应用程序,我想在联系人的DetailView中显示一个联系人的公司。如果在Django模板中的语句不起作用

在我的模板:

<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语句有什么问题?

感谢您的帮助提前!

回答

2

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

变化

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

{% if company == contact.company %}