有沒有辦法在查詢集中的數據進入模板之前以某種方式預先選擇數據?有這個'項目'模型連接到'project_phase',還有'project_phase_history'記錄可以跟蹤所有狀態變化。django:管理要在模板上顯示的數據
我正在構建關於這些數據的報告,並在一個頁面上顯示他們的所有項目,並且只想顯示過去幾天或最近一次提交的project_phase_history。
我試圖在視圖中莫名其妙地這樣做是這樣的:
projects_to_report_on = project.objects.filter(Q(current_phase__phase__id__in=[1,2,3,4]) & Q(role_sponsor__id = sponsor_id))
projects_to_report_on.current_phase.project_phase_history_set = projects_to_report_on.current_phase.project_phase_history.filter(...)
,但是這並不能幫助,真的 - 所有的數據似乎跳進模板。
我結束了傳遞日期爲模板,生成報告是這樣的:
{% for s in p.current_phase.project_phase_history_set.all %}
{% if s.date_submitted >= status_start_date %}
<tr>
<td>{{ s.date_submitted }}</td>
<td>{{ s.date_end_fact|default_if_none:"-" }}</td>
</tr>
{% endif %}
{% endfor %}
,但它不沒有我要找的靈活性。
class project(models.Model):
name = models.CharField(max_length=100, null=False, unique=True)
description = models.CharField(max_length=1024,null=True,blank=True)
current_phase = models.ForeignKey('project_phase', null=True, blank=True, related_name="current_phase")
class project_phase(models.Model):
phase = models.ForeignKey('phases')
project = models.ForeignKey('project')
is_finished = models.BooleanField(default=False)
class project_phase_history(models.Model):
project_phase = models.ForeignKey('project_phase')
date_start_plan = models.DateField(null=True, blank=False)
date_start_fact = models.DateField(null=True, blank=True)
感謝您的評論。如果我爲單個項目生成報告,這將工作。由於我在報告中推送了大量項目並將兩個(報告/狀態)集合傳入到了它中,因此我將能夠在模板中將它們彼此綁定:(除非我的錯誤 – abolotnov 2012-03-14 20:26:53
我'我已經編輯了我的答案,包括一個無害的方式來做到這一點。 – roam 2012-03-14 20:41:22
這應該解決,謝謝! – abolotnov 2012-03-14 20:51:04