2011-04-21 4 views
1

Не используя javascript, есть ли лучший способ запомнить выбор переключателя пользователя? Я чувствую, что у меня есть довольно наивный (?) Способ сделать это?Помните выбор переключателя в Django

Как я могу переписать это, чтобы сделать его более сухим? usersegment parem возвращается на ту же страницу при отправке.

{% if usersegment == "non-paying" %} 
<input type="radio" name="usersegment" value="non-paying" checked="yes"/> Non-paying Users <br /> 
<input type="radio" name="usersegment" value="paying" /> Paying Users <br /> 
<input type="radio" name="usersegment" value="all" /> All Users<br /> 
{% endif %} 

{% if usersegment == "paying" %} 
<input type="radio" name="usersegment" value="non-paying" /> Non-paying Users <br /> 
<input type="radio" name="usersegment" value="paying" checked="yes"/> Paying Users <br /> 
<input type="radio" name="usersegment" value="all" /> All Users<br /> 
{% endif %} 

{% if usersegment == "all" or not usersegment %} 
<input type="radio" name="usersegment" value="non-paying" checked="yes"/> Non-paying Users <br /> 
<input type="radio" name="usersegment" value="paying" /> Paying Users <br /> 
<input type="radio" name="usersegment" value="all" checked="yes"/> All Users<br /> 
{% endif %} 
+1

Почему вы не используете модель? Это сохранит состояние формы для вас, используя RadioSelect Widget –

+0

Чтобы быть честным, потому что я еще не прочитал об этом. Думаю, пришло время открыть эту главу. – super9

+0

Это того стоит! Мы используем их и передаем их через пользовательский «рендер», чтобы сохранить их красивыми и единообразными от проекта к проекту. Дизайнерам это нравится, поскольку они могут использовать все старые шаблоны CSS для форм. –

ответ

6

Как об этом:

<input type="radio" name="usersegment" value="non-paying" {% if usersegment == "non-paying" %}checked="checked"{% endif %}/> Non-paying Users <br /> 
<input type="radio" name="usersegment" value="paying" {% if usersegment == "paying" %}checked="checked"{% endif %}/> Paying Users <br /> 
<input type="radio" name="usersegment" value="all" {% if usersegment == "all" or not usersegment %}checked="checked"{% endif %}/> All Users<br /> 

Кроме того, рассмотреть вопрос об использовании django forms. Тривиальные проблемы, подобные этим, решены в очень элегантном виде, вам даже не нужно об этом думать.

+0

Хорошо. Я все еще изучаю Django и пропустил эту главу. – super9

+2

+1 для форм. Это ответ на ваш реальный вопрос. –

Смежные вопросы