2016-03-28 39 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 %}