2012-02-16 37 views
1

我想在我的Django模板中遍歷泛型關係,類似於您如何遍歷FK關係。如何遍歷Django模板中的通用關係?

Models.py

class Company(models.Model): 
    name = models.CharField(blank=True, max_length=100) 
    notes = models.TextField(blank=True) 

class Address(models.Model): 
    address = models.TextField(max_length=200) 
    content_type = models.ForeignKey(ContentType) 
    object_id = models.PositiveIntegerField() 
    content_object = generic.GenericForeignKey('content_type', 'object_id') 

這似乎並不在我的模板的工作:

{{ company.address_set.all }} 

任何幫助表示讚賞。

+0

再次閱讀您自己的代碼。爲什麼公司會有address_set? – Marcin 2012-02-16 16:46:37

+1

我想這是我的問題。如果我在'Address'中指定一個指向'Company'的外鍵關係,那麼'Company'將有一個address_set。所以,我想知道如何用普通關係完成同樣的事情,因爲'Address'可以與'Company'或其他模型的主機相關聯。 – 2012-02-16 16:49:51

回答

6

你的公司模式完全不認識有關不會忽略,你可以試試這個:

class Company(models.Model): 
    name = models.CharField(blank=True, max_length=100) 
    notes = models.TextField(blank=True) 
    addresses = generic.GenericRelation('Address', blank = True) 

在模板中,你可以做這樣的事情:

{% for address in company.addresses.all %} 
{{ address.town }}, {{ address.street }} 
{% endfor %} 

希望這有助於。