2009-08-19 49 views
1

剛開始我的Python/Django的經驗,我有一個問題:-)編寫Python/Django的視圖「加入」跨三種模式/表

所以我有這樣的model.py:

from django.db import models 

class Priority(models.Model): 
    name = models.CharField(max_length=100) 

class Projects(models.Model): 
    name = models.CharField(max_length=30) 
    description = models.CharField(max_length=150) 
    priority = models.ForeignKey(Priority) 

class Tasks(models.Model): 
    name = models.CharField(max_length=30) 
    description = models.CharField(max_length=40) 
    priority = models.ForeignKey(Priority) 

在優先級表我打算存儲像1.高,2,介質,3.低的數據和在任務表的優先級將被存儲爲ID(1,2或3)

,問題是如何寫一個視圖,顯示我的所有任務,但優先級命名?例如:

name: Task 1 

description: Description 1 

priority: **High** 

回答

2

您的觀點不需要做太多。

tasks = Tasks.objects.all() 

將此提供給您的模板。

然後,您的模板可以執行以下操作。

{% for t in tasks %} 
    name: {{t.name}} 
    description: {{t.description}} 
    priority: **{{t.priority.name}}** 
{% endfor %} 
+0

非常多!我知道這是簡單的:-)) – 2009-08-19 15:52:40

+0

雖然這將運行多個SQL查詢,對吧? – Flimm 2017-03-14 10:20:48

0

有很多方法可以完成你所需要的。最簡單的一種方法是保存一個字符串字典。像這樣:1->高,2->中,3->高。

將此字典保存在您的視圖函數之外,以便您可以從任何需要獲取優先級的視圖函數中訪問該字典。

您也可以簡單地編寫一個開關,確定要在模板中顯示的內容。