如何遍历 Django 模板中的通用关系?

发布于 2025-01-06 11:26:30 字数 558 浏览 2 评论 0原文

我想在 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 }}

感谢任何帮助。

I would like to traverse generic relationships in my Django template, similar to how you can traverse FK relationships.

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')

This does not seem to work in my template:

{{ company.address_set.all }}

Any help is appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吃颗糖壮壮胆 2025-01-13 11:26:30

您的公司模型不知道地址,您可以尝试以下操作:

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

希望这会有所帮助。

Your Company model doesnt know about the adresses, you could try this:

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

In your template you can do something like this :

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

Hope this helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文