django - опубликуйте форму на выбор - PullRequest
7 голосов
/ 08 февраля 2011

Я сделал простую форму django со списком вариантов (в переключателях):

class MyForm(forms.Form):
            choices=forms.ChoiceField( widget=forms.RadioSelect(), choices=[(k,k) for k in ['one','two','three']],label="choose one")

Я бы хотел, чтобы форма автоматически отправлялась, когда пользователь выбирает один из вариантов. В простом HTML я бы сделал это как

  <select name='myselect' onChange="FORM_NAME.submit();">
    ....
  </select>

Но я не знаю, как интегрировать это в класс формы без написания шаблона. В частности, мне нужно знать FORM_NAME, чтобы я мог позвонить FORM_NAME.submit() в приведенном выше фрагменте. Можно ли это сделать без использования шаблона?

1 Ответ

15 голосов
/ 08 февраля 2011

Я думаю, вам не нужно знать имя формы. Это также должно работать:

<select name='myselect' onChange="this.form.submit();">

Быстрое решение для интеграции этого в вашу форму будет включать добавление атрибута к вашему виджету .

widget=forms.RadioSelect(attrs={'onchange': 'this.form.submit();'})

Теперь можно поспорить, если это не лучше отделить от определения вашей формы (разделение определения, стиля и поведения), но это должно сработать.

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