Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将select输入的值设置为Django表单模板中最后一个请求的值_Django_Django Forms_Django Templates - Fatal编程技术网

将select输入的值设置为Django表单模板中最后一个请求的值

将select输入的值设置为Django表单模板中最后一个请求的值,django,django-forms,django-templates,Django,Django Forms,Django Templates,这是我的模板代码 <div class="form-group row"> <label for="{{ form.diagnosis.id_for_label }}" class="col-sm-4 col-form-label col-form-label-sm">{{ form.diagnosis.label }}</label> <div class="col-sm-8"> <input type="t

这是我的模板代码

<div class="form-group row">
    <label for="{{ form.diagnosis.id_for_label }}" class="col-sm-4 col-form-label col-form-label-sm">{{ form.diagnosis.label }}</label>
    <div class="col-sm-8">
        <input type="text" class="form-control form-control-sm{% if form.diagnosis.errors %} is-invalid{% endif %}" id="{{ form.diagnosis.id_for_label }}" name="{{ form.diagnosis.html_name }}" value="{{ form.diagnosis.value }}" required>
        {% if form.diagnosis.errors %}
        <div class="invalid-feedback">
            {% for error in form.diagnosis.errors %}
                {{ error }}
            {% endfor %}
        </div>
        {% elif form.diagnosis.help_text %}
        <small class="form-text text-muted">
            {{ form.diagnosis.help_text }}
        </small>
        {% endif %}
    </div>
</div>
<div class="form-group row">
    <label for="{{ form.assigned_employee.id_for_label }}" class="col-sm-4 col-form-label col-form-label-sm">{{ form.assigned_employee.label }}</label>
    <div class="col-sm-8">
        <select class="custom-select custom-select-sm{% if form.assigned_employee.errors %} is-invalid{% endif %}" id="{{ form.assigned_employee.id_for_label }}" name="{{ form.assigned_employee.html_name }}">
            {% for id, name in form.fields.assigned_employee.choices %}
                <option value="{{ id }}"{% if form.assigned_employee.value == id %} selected{% endif %}>{{ name }}</option>
            {% endfor %}
        </select>
        {% if form.assigned_employee.errors %}
        <div class="invalid-feedback">
            {% for error in form.assigned_employee.errors %}
                {{ error }}
            {% endfor %}
        </div>
        {% elif form.assigned_employee.help_text %}
        <small class="form-text text-muted">
            {{ form.assigned_employee.help_text }}
        </small>
        {% endif %}
    </div>
</div>
。但它不起作用,除非我为字段设置一个初始值,比如
form=SomeForm(initial={'assigned_employee':20180011})

有趣的是
form.assigned\u employee.value
在提交后返回一个值。我已经使用
console.log({{form.assigned\u employee.value}}})
检查了它

但是对以下条件的计算
{%if form.assigned_employee.value==id%}所选{%endif%}
始终为
false

有人知道发生了什么事吗

但是对以下条件{%if form.assigned_employee.value==id%}selected{%endif%}的计算始终为false

那是因为你忘了放置字段;您应该使用
{%if-form.fields.assigned\u employee.value==id%}
而不是
{%if-form.assigned\u employee.value==id%}

{% for id, name in form.fields.assigned_employee.choices %}
    <option value="{{ id }}"{% if form.fields.assigned_employee.value == id %} selected{% endif %}>{{ name }}</option>
{% endfor %}
{%表示id,名称为form.fields.assigned_employee.choices%}
{{name}}
{%endfor%}
编辑 如注释中所述,如果要在模板中将int转换为string,可以使用:

{% for id, name in form.fields.assigned_employee.choices %}
    <option value="{{ id }}"{% if form.assigned_employee.value == id|stringformat:"i" %} selected{% endif %}>{{ name }}</option>
{% endfor %}
{%表示id,名称为form.fields.assigned_employee.choices%}
{{name}}
{%endfor%}

我已经试过了。不起作用。此外,我还提到,
form.assigned\u employee.value
确实返回一个值。该值可能是一个字符串(因为它需要显示为文本),而id是一个int。想想看。但是如何在模板中进行这样的比较呢@DanielRoseman@ShateelAhmed检查编辑以查看是否适合您。
{% for id, name in form.fields.assigned_employee.choices %}
    <option value="{{ id }}"{% if form.assigned_employee.value == id|stringformat:"i" %} selected{% endif %}>{{ name }}</option>
{% endfor %}