我正在构建一个应用程序来学习 Django,并从一个当前存储联系人和地址的联系人系统开始。C 与 A 是多对多关系,但models.ManyToManyField()
我没有使用 Django,而是创建了自己的链接表,提供有关链接的其他信息,例如该联系人的地址类型(家庭、工作等)。我想要做的是将此信息传递给视图,因此在我的联系人的完整视图中,我可以这样做:
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 等效的工作。我有兴趣知道的是如何通过信息传递有关link
对象中链接的'addresses' : a
信息,以便当我的模板执行此操作时:
{% for address in addresses %}
<!-- ... -->
{% endfor %}
并将正确的链接对象数据与地址正确关联。
那么实现这一目标的最佳方法是什么?我在想两个对象的联合可能是一个想法,但我没有足够的 Django 经验来知道这是否被认为是最好的方法。建议?
提前致谢。
NF