私が取り組んでいるプロジェクトでは、select
タグをoption
デフォルトで特定のものにする必要があります。変数を特定の数値に設定すると、ページの読み込み時に対応するオプションが選択されるようにしようとしています。何らかの理由で、オプションが変数と同じかどうかを判断するために使用しているコードは、常に false を返します。
View.py
@login_required
def display_work(request, id, chapter = 1):
info = dict()
work = Work.objects.get(id = id)
chapters = Chapter.objects.filter(work = id).order_by("order_number")
info['title'] = work.title
info['summery'] = work.summery
info['current_chapter'] = chapter # the number the options are compared to
print chapter
info['id'] = id
num_chapters = 0
chapter_list = []
for c in chapters:
temp = (c.title, c.order_number) # where the numbering for the options is set (see template code)
chapter_list.append(temp)
num_chapters += 1
info['total_chapter'] = num_chapters
content = chapters[int(chapter)-1].content
return render_to_response("SubMain/display_work.html", {'STATIC_URL':STATIC_URL, "info":info, "chapters": chapter_list, "content": content})
テンプレート: テンプレートは、作成するオプションが現在の章であるかどうかを確認しながら、リスト全体を実行します。もしそうなら、それを「選択」する必要があります。
{% for t, o in chapters %}
<option value="/work/{{ info.id }}/{{ o }}" {% if o == info.current_chapter %} selected="selected" {% endif %}>Chapter {{ o }}: {{ t }}</option>
{% endfor %}
しかし、コードを実行するたびに、何も選択されません (if タグにあるものがあります)。私が行ったデバッグを通じて、それo
が 2 であり、2 であることも確認しましinfo.current_chapter
た。