比较django模板中的值

时间:2014-12-06 15:42:53

标签: python django django-templates

我的view.py

中有以下数组
chapter = 5
number_of_chapters = 5
selected_chapters = list()
for index in range(1, number_of_chapters+1):
    selected_chapters.append(index)
return render(request, 'verses.html', {'chapter': chapter, 'selected_chapters': selected_chapters})

但是当我尝试将此列表中的条目与chapter进行比较时,它永远不会返回true

模板

<select name="c" id="chapter" value="{{ chapter }}" onchange="bible_search(true);">
    <option value="1">Chapter</option>
    {% for c in selected_chapters %}
        <option {% if c == chapter %}  selected {% endif %} value="{{ c }}">{{ c }}</option>
    {% endfor %}
</select>

我想知道我是否需要将某个字符串转换为某个地方的某个字符串?

1 个答案:

答案 0 :(得分:0)

好像你还没有发布完整的代码,因为这对我来说很好。使用您提供的代码,当我导航到从该视图呈现的页面时,我看到select选择了值5。我认为你想要的是什么?这告诉我,视图或模板中的其他地方存在一些冲突。

虽然我们在这里,但HTML select元素没有value属性,因此应将其删除。其次,您有两个具有相同值的option元素。这是在浏览器中呈现的HTML。

<select name="c" id="chapter" value="5" onchange="bible_search(true);">
    <option value="1">Chapter</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option selected="" value="5">5</option>
</select>