2010-09-03 28 views
1

爲什麼這不一樣?Django模板ifequal - 請求GET和對象ID

{% ifequal gender.id request.GET.gender %} {{gender.name}} {% endifequal %} 

gender.id = 1 request.GET.gender = 1

請幫幫忙,我覺得這很簡單:)

+0

你的視圖代碼是什麼樣子?你確定你正確地傳遞了一切嗎?嘗試添加「性別ID:{{gender.id}}」;請求性別:{{request.GET.gender}};性別名稱:{{gender.name}}'到您的模板中,以查看您看到的內容。如果一切正常,你應該看到'Gender ID:1;申請性別:1;性別名稱:男性(或至少是某種)' – sdolan 2010-09-03 21:17:10

+0

'request.GET.gender'可能是'string'而gender.id'是'integer'。 – 2010-09-03 21:37:09

+0

這是整個模板代碼 {%if request.GET.gender%} {%for search_filters.genders%} {%ifequal gender.id request.GET.gender%} {{gender.name}} { %endifequal%} {%endfor%} {%else%} - 選擇 - {%endif%} AND 當我寫入模板 - request.GET.gender = 1並在search_filters.genders中循環時,性別爲1 ,2,3和gender.name ='test','test2','test3' 我不知道這是做到這一點的最好方法,我是新手.. – pkdkk 2010-09-03 21:40:43

回答

5

如果您正在使用的Django> 1.0,你可以嘗試

{% ifequal gender.id|stringformat:"s" request.GET.gender %}....{% endifequal %} 

或使用d有一個十進制整數

{% ifequal gender.id request.GET.gender|stringformat:"d" %}....{% endifequal %} 

參考: http://docs.djangoproject.com/en/1.2/ref/templates/builtins/#stringformat

+0

嘿,我用django 1.0 我試過gender.id | stringformat:「s」沒有運氣:(.. – pkdkk 2010-09-03 22:22:06

+0

當我打印request.GET.id | stringformat:「d」的模板,它是空的,並且它仍然不起作用:( – pkdkk 2010-09-03 22:32:01

+0

您在settings.py中的TEMPLATE_CONTEXT_PROCESSORS中是否有'django.core.context_processors.request'?http://docs.djangoproject.com/en/dev/ref/templates/api/#django核心上下文處理器請求 – Kevin 2010-09-03 22:51:29

0

好吧!我從我的更新版本的Django - 1.0.2 1.2.1

WOOP

現在,它的工作;)

gender.id|stringformat:"s" 

謝謝你所有的建議;)