2014-12-04 34 views
0

我的模板代碼:不能在Django模板比較varriables

  <select name="channelChoice" id="channelChoice" class="choiceBox"> 
      <option value="0">Chose your channel</option> 
      {% if channels %} 
       {% for ch in channels %} 
        {% if ch.id == default_channel_id %} 
         <option class="channel-choice" value="{{ ch.id }}" selected="selected" >{{ ch.title }}</option> 
        {% else %} 
         <option class="channel-choice" value="{{ ch.id }}" >{{ ch.title }}</option> 
        {% endif %} 
       {% endfor %} 
      {% endif %} 
     </select> 

我的Python代碼:

def index(request): 
channels = models.Channel.objects.filter(activated=True).order_by('title') 
default_channel_id = request.GET.get('channel_id', False) 
if not default_channel_id: 
    default_channel_id = 1 
return render(request, 'epgadmin/index.html', {'channels': channels, 'default_channle_id': default_channel_id}) 

我通過default_channel_id與值是1,和渠道的清單包含的頻道使用完全相同的ID是1.但是如果從句沒有達到!誰能幫我?

+0

正確default_channel_id的拼寫在這一行:「返回渲染(請求'epgadmin/index.html',{'channels':channels,'default_channle_id':default_channel_id})「。 – Ymartin 2014-12-04 05:21:05

回答

0

你不會在查詢需要models

from models import Channel 
channels = Channel.objects.filter(activated=True).order_by('title') 
+0

你能解釋一下嗎? – 2014-12-04 03:54:47

+0

我不知道你爲什麼要用'model'。你沒有'輸入'它檢查這個https://docs.djangoproject.com/en/dev/topics/db/queries/ – shellbye 2014-12-04 03:59:35

+0

你可以在視圖中打印你的'Channel'和'default_channel_id'來看看它是什麼你要。 – shellbye 2014-12-04 04:00:52

0

你必須在變量一個錯字,你傳遞給模板:default_channle_id

+0

錯字是什麼意思?你的意思是打字嗎? – 2014-12-04 04:14:19

+0

你需要'default_channel_id',但你傳遞了'default_channle_id'。這是一個拼寫錯誤,意味着拼寫錯誤。 – shellbye 2014-12-04 05:10:55