Шаблон Django получает пользовательский атрибут из запроса ИЛИ «обновляет» переключатели - PullRequest
1 голос
/ 27 сентября 2011

В настоящее время у меня есть шаблон, содержащий html-форму со строками:

{% for r in q1.responseoption_set.all %}
     <span class="r"><input type="{{ q1.answer_type }}" name="r{{ r.id }}" id="r{{ forloop.counter }}"/>
     <label {% if q1.answer_type == "text" %}class="textanswer"{% endif %}for="r{{ forloop.counter }}">{{ r.text }}</label></span><br>
{% endfor %}

Проблема в том, что они не все имеют одно и то же имя (вот почему, верно?), Если я выберупереключатель, а затем переключитесь на другой, первый из них по-прежнему будет отображаться как выбранный.

Однако на данный момент мне нужно, чтобы все они имели разные имена, потому что мне нужно было определить варианты внутриНа мой взгляд, и, насколько я могу судить, все, что я могу получить из запроса, это [имя, значение], например [r200, "on"]

Единственный способ обойти это, что я могу придумать, этовставить скрипт, который назначает событие проверки каждой кнопке, а затем, после проверки, вставляет скрытый ввод с желаемым именем, но это выглядит грязно.

ТАК, есть ли способ для меня либо: получить идентификатор кнопки из запроса ИЛИ сделать так, чтобы кнопки как-то обновились.

1 Ответ

1 голос
/ 27 сентября 2011

Оставьте имя таким же, и установите значение для каждого варианта ввода для идентификатора ответа.

{% for r in q1.responseoption_set.all %}
     <span class="r"><input type="{{ q1.answer_type }}" name="{% questionId %}" value="r{{ r.id }}" id="r{{ forloop.counter }}"/>
     <label {% if q1.answer_type == "text" %}class="textanswer"{% endif %}for="r{{ forloop.counter }}">{{ r.text }}</label></span><br>
{% endfor %}
...