Как получить доступ к выбранным данным внутри шаблона в Django? - PullRequest
0 голосов
/ 21 ноября 2019

Я хочу отобразить выбранное имя пользователя.

template

<select class="form-control" name="user_id">
  {% for user in user_list %}
    <option value="{{ user.id }}">{{ user.id }}</option>
  {% endfor %}         
</select>
<div>
  "I want to display name of selected user here"
</div>

views.py


class UsersView(TemplateView):

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context["user_list"] = [
           {"id": "0", name: "A"},
           {"id": "1", name: "B"},
           {"id": "2", name: "C"},
        ]
        return context
    template_name = "users.html"

Как получить доступ к выбранным данным в шаблоне?

1 Ответ

1 голос
/ 21 ноября 2019

Вы можете добиться этого, используя чистый js,

1) Присвойте вашему выпадающему списку id и добавьте событие onchange

<select class="form-control" name="user_id" id="my_dropdown" onchange="updateUser()">
  {% for user in user_list %}
    <option value="{{ user.id }}">{{ user.id }}</option>
  {% endfor %}         
</select>

2) Поместите "I want to display name of selected user here" внутрь div или span

<span id="selected_user"> "I want to display name of selected user here" </span>

3) Создайте функцию, которую вы использовали в onchange, и поместите выбранное значение выпадающего меню в span, который мы создали выше.

function updateUser() {
  document.getElementById("selected_user").innerHTML = document.getElementById("my_dropdown").value;  
}

Надеюсь, вам все было ясно, если не сообщите мне.

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