首页 > 解决方案 > Django表单问题

问题描述

我正在使用 Django 来选择语言。一个选项工作正常,但另一个不起作用

选项(1)工作正常。

                      <select name="language" 

onchange="this.form.submit()" >
                            {% get_current_language as LANGUAGE_CODE %}
                            {% get_available_languages as LANGUAGES %}
                            {% for lang in LANGUAGES %}
                            <option value="{{ lang.0 }}" {% if lang.0 == LANGUAGE_CODE %} selected="selected"{% endif %} >{{ lang.1 }} ({{ lang.0 }})</option>
                            {% endfor %}
                        </select>

选项 1:不使用(表单提交按钮)

                <form action="{% url 'set_language' %}" method="post" id="LanForm" name="LanForm">
                    {% csrf_token %}                     
    <input class="lang" id="language" name="language" type="hidden" value="ar">
                     <input class="lang" id="setl" name="setl" type="submit" value="Go">
                    </form>

选择选项可以正常工作并正确更改语言和重定向。但如果我使用“开始”按钮,什么都不会改变。我想知道是什么问题。

标签: python-3.xdjango

解决方案


首先,您不要设置多个具有相同 ID 的节点。其次,您保持提交和隐藏输入的名称相同,即“语言”。

使用以下代码段并再次测试

 <form action="{% url 'set_language' %}" method="post" id="LanForm" name="language">
    {% csrf_token %}                     
    <input class="lang" id="language" name="language" type="hidden" value="ar">
    <input class="lang" type="submit" value="Go">
 </form>

推荐阅读