2010-09-23 84 views
0

我試圖做一個表格,與性別的選擇。用戶可以選擇男性還是女性。django表單不能在點擊提交

我現在有什麼forms.py:

<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 %} 

的看法:

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 
模板

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 }) 

形式完成,作品,但問題是當我點擊提交按鈕時什麼也沒有發生。他沒有給我的信息

+0

什麼意思是「什麼都沒有發生」?表單沒有提交或它是,但你沒有從它獲得任何數據? – yedpodtrzitko 2010-09-30 08:25:33

+0

其實我之前就能做到這一點。表單未被驗證。我在表單上做了一些更改,現在它工作 – pavid 2010-09-30 09:51:02

回答

0

我不明白你爲什麼已經在Model.py和forms.py中定義了DemoDataForm,一次是作爲ModelForm定義的,一次是作爲一個普通的形式。因此,從您發佈的代碼中無法確定您正在實例化的是哪個類。

我會說,將這個版本放在forms.py中,將models.py中的一個移動到forms.py中,然後使用它。但是,首先你需要修復的bug輕微的 - 而不是:

fields = ('gender') 

你需要

fields = ('gender',) 

因爲一項的元組總是需要一個逗號,否則Python將試圖通過迭代串。

+0

其實這是一個愚蠢的錯誤,我忘了一個括號。對不起,但我沒看到錯誤。但是,謝謝你的建議。我在django文檔中看到過,我試過這樣的 – pavid 2010-09-24 15:31:34

+0

我更新了我的問題併發布了我的最終結果。隨意建議改進:) – pavid 2010-09-24 15:45:10

0

在上面的代碼中,提交按鈕在表單標籤之外?它不應該在表單標籤內嗎?

+0

我的錯誤寫作。這不是那個問題,因爲我只是把這個錯誤複製到這裏 – pavid 2010-09-28 17:20:49

2

你必須定義的網址,讓後數據將被髮送

這會後的數據發送到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

我也試過這種方式,但這不是它不起作用的原因。沒變化.. – pavid 2010-09-28 17:59:12