2011-03-25 40 views
0
<span id='question'>{{QuestionText}}</span> 
<br> 
<form action={{address}}> 
{% for each in AnswerQuery %} 
<span>{{each.answer}}</span><input type='radio' name="answer"> 
<span>Votes:{{each.answercount}}</span> 
<br> 
{% endfor %} 

嘿,我使用Django模板的谷歌應用程序引擎項目。以上是我的代碼片段。但我想知道是否有一種方法可以選擇部分顯示html。就像在某些情況下,我不希望用戶看到QuestionText,所以我只是關閉了它,同時仍然顯示其餘的部分。我知道我可以渲染不同的模板,這些模板會進行相應的修改,但這樣做太瑣碎了,我不得不渲染一堆不同的模板。如果我可以更改模板的一部分並重新使用它,那會很好。我想這個魔術來自django部分,客戶端,但我不知道如何。任何幫助?謝謝觸發一個「開關」,控制哪個部分顯示

回答

0

如果你想隱藏的內容並顯示出它與基於一些用戶操作的JavaScript(客戶端),這將工作:

<span id="question" style="display: none;">{{QuestionText}}</span> 

<script type="text/javascript"> 
    // This requires jQuery 
    $('document').ready(function(){ 
     if(some_foo_bar == true){ 
      $('#question').show(); 
     } 
    }); 
</script> 

如果你只想不顯示內容的一部分在所有(即,甚至不輸出它的瀏覽器),這將工作:

{% if some_variable_set_in_django_view_context %} 
<span id='question'>{{QuestionText}}</span> 
{% endif %} 
<br> 
<form action={{address}}> 
{% for each in AnswerQuery %} 
<span>{{each.answer}}</span><input type='radio' name="answer"> 
<span>Votes:{{each.answercount}}</span> 
<br> 
{% endfor %} 
+0

我需要第二個因爲可以決定哪個部分顯示的因素是從服務器。 {%if some_variable_set_in_django_view_context%}但我不太明白這部分,就像如何觸發if語句一樣?像我通過一些變量進入if?像什麼變數?非常感謝你 – 2011-03-25 03:41:16

+0

設置'QuestionText'的地方(在視圖中)是你想設置'foo_variable'的地方。當頁面被渲染時,Django將查看'{%if%}'語句,如果'foo_variable'的值爲'True',則將使用'if'和'endif'之間的代碼(我說' foo_variable'因爲你可以任意命名它)。 – orokusaki 2011-03-25 03:52:26

相關問題