많은 대화를 가질 수있는 연락처 클래스가 있습니다. 그러나 각 대화는 하나의 연락처에 속할 수 있습니다. 그것의 일대 다 관계.개체의 관련 콘텐츠를 표시하는 방법
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
이제 템플릿에 연락처를 전달할 때 연락처의 마지막 대화를 보여주는 하나의 필드가 필요합니다.
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으로 바꾼 경우 첫 번째 메시지가 표시됩니다.
내가 뭘 잘못하고 있니? 그보다 훨씬 쉽게 할 수 있다는 사실 외에도. :) 나는 그것을하는 더 좋은 방법에 대해 열려 있습니다.
많은 Daniel 님, 기록을 위해 추가 creation_date = models.DateTimeField (auto_now_add = True, editable = False)를 사용하고 대화 클래스에서 class Meta : get_latest_by = "creation_date"를 추가했습니다. 이 필드는 항상 최신 날짜와 시간을 가졌으므로 최신 항목입니다. 한 번에 전체 항목을 가져 오는 더 좋은 방법이 있다면, 나는 그것에 대해 알고 싶습니다. ;) 당신이 추천할만한 어떤 기사/튜토리얼이 있다면 좋을 것입니다. :) – Houman