Django URL перенаправление языкового префикса - PullRequest
0 голосов
/ 23 марта 2020

совершенно новый в программировании & django, так что будьте осторожны со мной :) Я только что реализовал (используя документы) ниже форму с раскрывающимся списком для смены языка:

<form action="{% url 'set_language' %}" method="post">
 {% csrf_token %}
    <input name="next" type="hidden" value="{{request.get_full_path }}"/>
    <select name="language">
        {% get_current_language as LANGUAGE_CODE %}
        {% get_available_languages as LANGUAGES %}
        {% get_language_info_list for LANGUAGES as languages %}
        {% for language in languages %}
            <option type="submit" value="{{ language.code }}"{% if language.code == LANGUAGE_CODE %} selected="selected"{% endif %}>
                {{ language.name_local }} ({{ language.code }})   
            </option>
        {% endfor %}
    </select>
    <input type="submit" value={% trans "GO" %} />
</form>

Все работает так же, как Ожидается, поэтому я могу использовать выпадающий список, чтобы сделать переключение. В качестве value = "{{request.get_full_path}}" я вернусь к ссылке, где я был (что нормально); все еще только для учебной цели, я хотел бы изменить это и быть перенаправлен на ссылку с кодом lang_code в префиксе. Я заметил, что функция префикса уже установлена ​​-> http://127.0.0.1: 8000 / ru / Django_book_app_1 / & http://127.0.0.1: 8000 / fr / Django_book_app_1 / работает просто отлично.

Как я могу реализовать эту уже имеющуюся функцию, все еще используя раскрывающийся список для изменения языка (перенаправить на префиксную ссылку при переключении)?

На данный момент я попробовал это:

URL:
path('<lc>/', views_second.IndexView.as_view(), name='index')

HTML:
<input name="next" type="hidden" value="{% url 'polls:index' lc=request.LANGUAGE_CODE %}"/>

, но он не работает должным образом по очевидным причинам (запрос отправляет текущий l c, который является противоположностью языка. выбран код, результат http://127.0.0.1: 8000 / Django_book_app_1 / fr / с языком engli sh на странице и ссылкой http://127.0.0.1: 8000 / Django_book_app_1 / ru / с французским языком на стр. ).

Большое спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...