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

Ben*_*n S 1 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')
Run Code Online (Sandbox Code Playgroud)

这在我的模板中似乎不起作用:

{{ company.address_set.all }}
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏.

Jin*_*ngo 6

您的公司模型不知道地址,您可以尝试这样做:

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

在您的模板中,您可以执行以下操作:

{% for address in company.addresses.all %}
{{ address.town }}, {{ address.street }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.