2015-03-03 18 views
1

假設我有一個TrueFalseQuestion模型(其中只有一個question_text)在myproject/myapp/models.py,我希望它可以呈現爲,假設如何在Django中更改模型(類)的HTML?

<a>Question Text</a> 
<input type="radio">True</input> 
<input type="radio">False</input> 

(HTML可能是錯的,並不重要),在此模板,只有Question Text部分更改,輸入形式始終保持不變。那麼如何在Django中實現這種行爲呢?

一個例子將不勝感激。謝謝 !

回答

1

在您的應用程序的views.py文件中,添加以下內容。

from django.views.generic import ListView 
from models import TrueFalseQuestion 

class QuestionsList(ListView): 
    queryset = TrueFalseQuestion.objects.all() 
    template_name = 'name_of_your_template' 

那麼你的模板中,遍歷這樣對object_list:

{%for ques in object_list%} 
<a>{{ques.question_text}}</a> 
<input type="radio">True</input> 
<input type="radio">False</input> 
{%endfor%} 

此外,請確保您的網址指向視圖。

+0

謝謝!如果我有一個包含多個內容類型的視圖,比如TrueFalseQuestion和MultipleChoiceQuestion? – jeff 2015-03-03 10:12:14

+1

你需要覆蓋get_context_data方法是這樣的: '高清get_context_data(個體經營,** kwargs): 上下文=超(QuestionsList,個體經營).get_context_data(** kwargs) 背景[ 'multiple_object_list'] = MultipleChoiceQuestion.objects.all() return context' 然後,您可以像上面一樣遍歷'multiple_objects_list'來獲取此查詢集中的數據。 對不起,縮進是在註釋中搞砸了。 – 2015-03-03 10:15:28

+0

實際上,我嘗試編輯現有項目,現在我看到的模板HTML文件,只有這個:'的 \t \t \t \t塊{{blockPairs.number}}的{{ blockPairs.paginator.num_pages}}。 \t \t \t \t',其中block是問題的容器類。那麼,我如何/在哪裏改變這個區塊的行爲? – jeff 2015-03-03 10:27:45