【问题标题】:How do I traverse a generic relationship in a Django template?如何遍历 Django 模板中的通用关系?
【发布时间】:2012-03-08 02:05:15
【问题描述】:

我想在我的 Django 模板中遍历泛型关系,类似于遍历 FK 关系的方式。

模型.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 }}

感谢任何帮助。

【问题讨论】:

  • 再次阅读您自己的代码。为什么公司会有地址集?
  • 我想这是我的问题。如果我在Address 中指定指向Company 的外键关系,那么Company 将有一个address_set。所以,我想知道如何用通用关系完成同样的事情,因为Address 可以与Company 或许多其他模型相关联。

标签: django django-templates generic-relationship


【解决方案1】:

你的公司模型不知道地址,你可以试试这个:

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

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-14
    • 2011-05-15
    • 1970-01-01
    • 2010-11-04
    • 2014-03-28
    • 1970-01-01
    • 2018-05-24
    • 2016-11-12
    相关资源
    最近更新 更多