[英]Django. Iterate by models in dictionary
我有兩個模型:
class Status(models.Model):
CHOISES = (
('new', 'New'),
('in_progress', 'InProgress'),
.....
)
status_type = models.CharField(
max_length=11,
choices=CHOISES,
primary_key=True)
def __unicode__(self):
return str(self.status_type)
class Task(models.Model):
name = models.CharField(max_length=200, blank=False)
status = models.ForeignKey(Status)
這是我視圖的一部分,該視圖根據status
模型返回帶有鍵的字典:
all_tasks = Task.objects.select_related('status').order_by('status')
tasks = {status: list(tasks)
for status, tasks
in itertools.groupby(all_tasks, lambda x: x.status)
}
這是字典中查看功能返回的一部分:
{<Status: new>: [<Task: Task object>, <Task: Task object>],
<Status: in_progress>: [<Task: Task object>,<Task: Task object>],...}
我需要按5個status
列將模板中的所有tasks
模型分組。
所以我用這個電話:
{% for item in tasks.new %}
{{ item.name }}
{% endfor %}
它不起作用,因為我無法通過status
對象名稱從字典中獲取值。
問題是如何通過模板中的dict鍵按status
對象進行迭代?
我不確定僅使用狀態模型來存儲一個字段有什么意義。 為什么不將其保留在Task中,並在那里定義選擇呢?
不過,您可以通過按x.status.status
分組來解決當前的問題,以使用實際的charfield值而不是其包含的模型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.