Django 选择如何记住所选值?

Django select how to remember chosen value?

提问人:kkkkk 提问时间:1/17/2016 最后编辑:Stephen Docykkkkk 更新时间:4/21/2018 访问量:1466

问:

我有一个选择。在项目更改时,我重新加载了一个页面,但在重新加载后,我选择了一个空白项目。如何记住所选项目?

teacher.html

<form id="form"  method="POST">{% csrf_token %}
       <select name="choose_teacher" onChange="this.form.submit();" blank_choice='Please choose:' >
       <option value="{{ 0 }}">blank</option>
           {% for item in query_results %}
               <option value="{{ item.id }}">{{ item.title}} {{ item.name }} {{ item.surname }}</option>
           {% endfor %}
       </select>
</form>
{{ teacher_id }}

views.py

def teacher(request):
if request.method == 'POST':
    if 'choose_teacher' in request.POST:
        teacher_id = request.POST['choose_teacher']
        query_results = Teacher.objects.all()
        context = {'teacher_id': teacher_id,
                   'query_results': query_results}
        return render(request, 'planner/teacher.html', context)
else:
    query_results = Teacher.objects.all()
    context = {'query_results': query_results}
    return render(request, 'planner/teacher.html', context)

:编辑:

    <form id="form" method="POST">{% csrf_token %}
    <select name="choose_teacher" onChange="this.form.submit();">
        {% for item in query_results %}
            <option value="{{ item.id }}"
                    {% ifequal teacher_id item.id %}selected{% endifequal %}>{{ item.title }} {{ item.name }} {{ item.surname }}</option>
        {% endfor %}
    </select>
</form>
[HTML全文] 姜戈 选择 发布

评论


答:

2赞 Assem 1/17/2016 #1

将模板选项更改为:select

<option value="{{ item.id }}"
{% ifequal teacher_id item.id %}selected{% endifequal %}
>{{ item.title}} {{ item.name }} {{ item.surname }}</option>

它将测试选项 id 是否等于 ,如果为 true,则添加标记。teacher_idselected

选项 0 也是如此:

<option value="0" {% ifequal teacher_id 0 %}selected{% endifequal %}>blank</option>

评论

0赞 kkkkk 1/17/2016
它不起作用。我已经在我的 for 中更改了它。它和以前一样工作。