2016-11-18 63 views
0

我有以下型號:Django的模板數據

class Contactnumber(TimeStampedModel): 
    phone_number = models.CharField(max_length=100, unique=True) 
    contact = models.ForeignKey(‘contacts.Contact') 

class Contact(TimeStampedModel): 
     contact = models.CharField(max_length=100, db_index=True, 
           verbose_name='Contact Name') 
     practice = models.ManyToManyField(‘practice.Practice’, 
             related_name=「contacts",) 



class Practice(TimeStampedModel): 
     practice = models.CharField(max_length=150, db_index=True, 
           verbose_name='Practice Name') 

我有包括中,我想呈現出以下數據表的模板: 實踐,聯繫人,聯繫電話

下面給我練習聯繫:

{% for contact in practice.contacts.all %} 
    {{ contact }} 
    {% endfor %} 

我的問題是如何包括聯繫電話號碼,因爲我似乎有點迷路。 任何幫助,將不勝感激。道歉,如果這是一個簡單的問題!

回答

2

ATM聯繫人可以有多個電話號碼,所以一個辦法是做這樣的:

{% for contact in practice.contacts.all %} 
    {% for number in contact.contactnumber_set.all %} 
     {{ number.phone_number }} 
    {% endfor %} 
{% endfor %} 

behing的邏輯是,當你沒有設置related_name的關係字段( one2one,FK,M2M),那麼您可以通過型號名稱訪問相關型號,並在末尾添加「_set」。所以你迭代所有的聯繫人和聯繫人所有的數字,輸出將是所有這些人的數字。隨意以任何你喜歡的方式進行格式化(添加逗號,<br>'s等等)。