форма django не работает при нажатии - PullRequest
0 голосов
/ 23 сентября 2010

Я пытаюсь сделать форму, с выбором пола.Пользователь может выбирать между мужчиной и женщиной.

То, что у меня сейчас есть в forms.py:

class GenderForm(forms.Form):
    demo = DemoData.objects.all()
    GENDER_CHOICES = [
        ('Male', 'Masculino'),
        ('Female', 'Feminino')]

    gender = forms.ModelChoiceField(demo, widget=Select(), required=True)
    choices_distlabel = [('', '')] + GENDER_CHOICES
    gender.choices =  choices_distlabel

в шаблоне:

<form action="" method="post">
    {% for field in form_gender %}
        {{ field }}
    {% endfor %}

<input type="submit" value="Submit" />
 </form> 
{% if idgender %}
    <img src="/age_gender/{{ idgender }}.png" alt="Graph"/>
{% endif %} 

просмотров:

 if form_gender.is_valid():
        gender = form_gender.cleaned_data['gender']
        gender = gender.gender
        if gender:
            idgender = gender
        return render_to_response('age.html', {'form_gender': form_gender, 'idgender': idgender }) 

Форма заполнена и работает, но проблема в том, что когда я нажимаю кнопку отправки, ничего не происходит.Он не дал мне информацию

Ответы [ 3 ]

2 голосов
/ 28 сентября 2010

Вы должны определить URL, куда будут отправляться данные поста

Это отправит данные поста на URL / my_app / my_view /

<form action="/my_app/my_view/" method="post">
    {% for field in form_gender %}
        {{ field }}
    {% endfor %}

<input type="submit" value="Submit" />
</form> 

Это отправит данные поста на текущий URL, на котором вы находитесь.

<form action="." method="post">
    {% for field in form_gender %}
        {{ field }}
    {% endfor %}

<input type="submit" value="Submit" />
</form> 
0 голосов
/ 28 сентября 2010

В вышеприведенном коде кнопка отправки находится вне тегов формы?Разве это не должно быть внутри тегов формы?

0 голосов
/ 24 сентября 2010

Я не понимаю, почему вы определили DemoDataForm в файлах models.py и forms.py, один раз как ModelForm и один раз в виде простой формы. Из-за этого невозможно определить из кода, который вы опубликовали, какой именно класс вы создаете.

Я бы сказал, перетащите версию в forms.py, переместите версию в models.py в forms.py и используйте ее. Но сначала вам нужно исправить небольшую ошибку - вместо:

fields = ('gender')

вам нужно

fields = ('gender',)

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

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