0
你好,並提前謝謝你:Django窗體不保存到MySQL
我有一個表單,沒有保存輸入數據到MySQL數據庫。我沒有得到一個錯誤,那根本不是保存數據...
My Model:
from django.db import models
from django.forms import ModelForm
class DraftInput(models.Model):
player_id = models.CharField(max_length=5)
def __unicode__(self):
return self.player_id
class DraftInputForm(ModelForm):
class Meta:
model = DraftInput
筆者認爲:
def player_draft_input_view(request):
if request.method == 'POST':
form = DraftInputForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('/draft/')
else:
form = DraftInputForm()
return render_to_response('baseball/basic_draft_pick.html', { 'form': form, }, context_instance=RequestContext(request))
我的模板:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Basic Draft Pick Page</title>
</head>
<body>
<form action="" method="POST">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Draft" />
</form>
</body>
</html>
我敢打賭,這是後話真的很簡單,我會踢我自己,但我一直在看這個代碼大約5小時了...
謝謝,
dp
我沒有看到任何明顯的東西。您是否確認表單已填寫並且is_valid分支運行?我們需要追蹤問題出在窗體和視圖之間,還是視圖和數據庫之間。做任何其他形式保存到數據庫正確? – 2012-03-20 04:15:13
我註釋掉了is_valid分支,行爲沒有改變。我沒有在django-toolbar上發現任何錯誤。這是迄今爲止我創建的唯一形式。我是一個新手,所以我不確定如何最好地解決問題,看看發生了什麼。 – dpbklyn 2012-03-20 11:32:14
聽起來你的表單無效,因爲你的頁面沒有遵循你的重定向到/ draft /(btw,檢查url和reverse()文檔而不是硬編碼重定向)。無論如何 - 在任何地方添加打印語句以查看代碼實際發生的情況 - 驗證請求是否以POST方式進入,驗證表單是否有效(似乎不是),也可以添加一個else以表示有效並打印在表單域中。有些事情是不正確的,你可以去探索,找出它是什麼。 – 2012-03-20 17:43:38