gpt4 book ai didi

python - Django - 在模板中提供附加信息

转载 作者:太空宇宙 更新时间:2023-11-04 01:43:27 25 4
gpt4 key购买 nike

我正在构建一个应用程序来学习 Django,并开始使用当前存储联系人和地址的联系人系统。 C 与 A 是多对多关系,但我没有使用 Django 的 models.ManyToManyField(),而是创建了自己的链接表,提供有关链接的其他信息,例如地址类型是什么给那个联系人(家庭、工作等)。我想做的是将此信息传递给一个 View ,因此在我对联系人的完整 View 中,我可以这样做:

def contact_view_full(request, contact_id):
c = get_object_or_404(Contact, id=contact_id)

a = []
links = ContactAddressLink.objects.filter(ContactID=c.id)
for link in links:
b = Address.objects.get(id=link.AddressID_id)
a.append(b)

return render_to_response('contact_full.html', {'contact_item': c, 'addresses' : a }, context_instance=RequestContext(request))

因此我可以执行与 c.Addresses.all() 等效的操作,或者 ManyToManyField 可以正常工作。我想知道的是如何使用 'addresses' : a 信息传递有关 link 对象中链接的信息,以便当我的模板执行这个:

{% for address in addresses %}
<!-- ... -->
{% endfor %}

并将正确的链接对象数据与地址正确关联。

那么实现这一目标的最佳方法是什么?我在想两个对象的联合可能是一个想法,但我没有足够的 Django 经验来知道这是否被认为是最好的方法。有什么建议吗?

提前致谢。

Nf

最佳答案

为了添加额外信息,您应该使用带有“槽”额外字段的 ManyToMany 关系: http://docs.djangoproject.com/en/dev/topics/db/models/#extra-fields-on-many-to-many-relationships

这将导致这段代码:

def contact_view_full(request, contact_id):
c = get_object_or_404(Contact, id=contact_id)
a = c.addresses.all()
return render_to_response('contact_full.html', {'contact_item': c, 'addresses' : a }, context_instance=RequestContext(request))

关于python - Django - 在模板中提供附加信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2495985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com