我有一個聯繫類,可以有很多的對話的相關內容。但每個對話都可以屬於一個聯繫人。 所以它是一對多的關係。如何顯示對象
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.0替換calls.idx,我會顯示第一個。
我在做什麼錯?除了可能做得比這更容易的事實。 :)我開放更好的方式來做到這一點。
非常感謝Daniel,爲了記錄,我在Conversation類下增加了'creation_date = models.DateTimeField(auto_now_add = True,editable = False)'並添加了class Meta: get_latest_by =「creation_date」。由於這個領域一直都是日期和時間,所以它確實是最新的條目。如果有更好的方式一次性獲得整套參賽作品,我很想知道它。 ;)如果有任何文章/教程可以推薦會很棒。 :) – Houman 2012-07-09 22:12:09