不带按钮的语言切换器列表

时间:2019-09-30 18:07:15

标签: python django

我正在尝试列出可用的语言,但我无法做到这一点,但是选择的语言没有更改,页面刷新但什么都没有。

<form action="/i18n/setlang/" method="post" style="display: inline;">{% csrf_token %}
    <div style="display: inline;">
        <select name="language" onchange="javascript:form.submit()">
            {% for lang in LANGUAGES %}
                <option value="{{ lang.0 }}"{% ifequal LANGUAGE_CODE lang.0 %} selected="selected"{% endifequal %}>{{ lang.1 }}</option>
            {% endfor %}
        </select>
    </div>
</form>

我在日志中收到此错误

  • POST / i18n / setlang / HTTP / 1.1“ 302 0

我试图将其作为带有按钮的列表,但是要使用按钮来更改语言,这太难看了。

更新: 它会更改为其他语言,但是一旦更改为其他语言,我便无法将其更改回。 由于某种原因,set lang在url中被调用了两次。

"POST /i18n/setlangsetlang/ HTTP/1.1" 302 0
<div class=" float-right">
          {% get_language_info_list for LANGUAGES as languages %}
          <form action="{% url 'set_language' %}" method="post" class="navbar-form navbar-right">
              {% csrf_token %}
              <div class="form-group">
                  <select name="language" class="form-control" onchange="this.form.submit()">
                  {% for language in languages %}
                  <option value="{{ language.code }}"
                      {% if language.code == LANGUAGE_CODE %}selected="selected"{% endif %}>
                      {{ language.name_local }}
                  </option>
                  {% endfor %}
                  </select>
              </div>
              </form>
        </div>

由于某种原因,设置语言被调用了两次

“ POST / i18n / setlangsetlang / HTTP / 1.1” 302 0

1 个答案:

答案 0 :(得分:0)

对此的正确答案是没人能提供。

<form action="{% url 'set_language' %}" method="post" class="">
      </br>
      <div class="language-footer">
          {% csrf_token %}
          <select name="language" class="nice-select lan_pack" onchange="this.form.submit()">
          {% for language in languages %}
          <option value="{{ language.code }}"
              {% if language.code = LANGUAGE_CODE %}selected="selected"{% endif %}>
              {{ language.name }}
          </option>
          {% endfor %}
          </select>
      </div>
    </form>