ジャンゴ - テンプレートに追加情報を提供
-
21-09-2019 - |
質問
私はジャンゴを学ぶためのアプリを構築していますし、現在は店舗の連絡先やアドレス連絡先のシステムで開始しました。 Cさんは、Aさんとの多くの関係に多くあるのではなく、使用Djangoのmodels.ManyToManyField()
よりも、私は、このようなアドレスタイプは、その連絡先(自宅、などの作業)にあるものとして、リンクについての追加情報を提供する私自身のリンクテーブルを作成しました。私は何をしようとしていることは、私はこれを行うことができ、接触の私の完全なビューでそう、ビューにこの情報を渡します。
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 %}
と適切にアドレスを使用して、正しいリンクオブジェクトのデータを関連付けます。
だから、これを達成するための最良の方法は何ですか?私は、2つのオブジェクトの労働組合は、アイデアかもしれないと思っていますが、私はそれはそれを行うための最善の方法と考えられていますかどうかを知るためのジャンゴとの十分な経験を持っていません。提案?
事前に感謝します。
をNf
解決
その他の情報を追加するには、「谷」の余分なフィールドを持つ多対多の関係を使用する必要があります。 の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))