2016-03-28 7 views
2

ドロップダウン選択ベースのフォームではなく、一連のボタンとしてdjango言語選択を実装したいと考えています。私はsubmit,formactionvalueの属性をボタンに追加することでこれを実行しようとしましたが、正しく動作しません。ボタンとしてDjango言語選択フォームを実装する

以下の入力フォームを一連のボタンに実装する正しい方法は何ですか?ありがとう! Djangoの国際化のドキュメントから

{% get_current_language as LANGUAGE_CODE %} 
{% get_available_languages as LANGUAGES %} 
{% get_language_info_list for LANGUAGES as languages %} 

<form action="{% url 'set_language' %}" method="post">{% csrf_token %} 
    <input name="next" type="hidden" value="{{ redirect_to }}" /> 
    <select name="language"> 
    {% for language in languages %} 
     <option value="{{ language.code }}"{% if language.code == LANGUAGE_CODE %} selected="selected"{% endif %}> 
     {{ language.name_local }} ({{ language.code }}) 
     </option> 
    {% endfor %} 
    </select> 
    <input type="submit" value="Go" /> 
</form> 

ボタンと私の試み:

{% get_current_language as LANGUAGE_CODE %} 
{% get_available_languages as LANGUAGES %} 
{% get_language_info_list for LANGUAGES as languages %} 

{% for language in languages %} 
    <button type="submit" title="{{ language.code }}" formaction="{% url 'set_language' %}" value="{{ language.code }}"> 
    {{ language.name_local }} ({{ language.code }}) 
    </button> 
{% endfor %} 
+1

私はいくつかのより多くの一見無関係な質問で検索、まだ自分の質問に答えることができないように、[ここ](http://stackoverflow.com/a/18393243/943773)自分の質問への答えに私を導きました。この質問には、許可されている場合の例が追加されます。 – ryanjdillon

答えて

3

次が提出すると、自身の隠された形として、それぞれの言語を作成する方法であり、ボタンはstyled with cssです。

アクティブな言語のスタイルを変更したい場合は、django if文を使用して、現在の言語である場合はcssを変更できます。

{% get_current_language as LANGUAGE_CODE %} 
{% get_available_languages as LANGUAGES %} 
{% get_language_info_list for LANGUAGES as languages %} 

{% for language in languages %} 
    <form action="{% url 'set_language' %}" method="post" id="form_{{ language.code }}" style="display:inline!important;"> 
    {% csrf_token %} 
    <input name="next" type="hidden" value="{{ redirect_to }}" /> 
    <input name="language" type="hidden" value="{{ language.code }}" /> 
    </form> 
    <button class="lang-button" type="submit" form="form_{{ language.code }}" value="Submit">[{{ language.code }}]</button> 
{% endfor %} 
関連する問題