多くの会話ができるContactクラスがあります。ただし、各会話は1つの連絡先に属することができます。つまり、1対多の関係です。
class Contact(models.Model):
first_name = models.CharField()
last_name = models.CharField()
class Conversation(models.Model):
contact = models.ForeignKey(Contact)
notes = models.TextField()
def __unicode__(self):
return self.notes
ここで、連絡先をテンプレートに渡すときに、連絡先の最後の会話を表示する1つのフィールドが必要です。
contacts= profile.company.contact_set.all()[:10]
calls = []
for c in contacts:
calls.append(max(c.conversation_set.all()))
そして、私はこれらを次のように渡します:
vars = {'contacts' : contacts, 'calls': calls}
variables = RequestContext(request, vars)
return render_to_response('main_page.html', variables)
テンプレートで私はこの魔法を思いついた:
{% for idx, val in contacts %}
<tr>
<td>...
</td>
<td>
{% if calls %}
{{ calls.idx }}
{% endif %}</td>
</tr>
{% endfor %}
これは、呼び出しに対して何も表示しません。しかし、calls.idxをcalls.0に置き換えると、最初のものが表示されます。
私は何が間違っているのですか?それがおそらくそれよりはるかに簡単にできるという事実に加えて。:)私はそれを行うためのより良い方法を開いています。