如何遍历Django模板中的泛型关系?

时间:2012-02-16 16:42:55

标签: django django-templates generic-relationship

我想遍历我的Django模板中的泛型关系,类似于如何遍历FK关系。

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

感谢任何帮助。

1 个答案:

答案 0 :(得分: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 %}

希望这有帮助。