出于某种原因,我无法将form.save()保存到我的数据库中。我能够创建表单,并将表单传递给我的模板,但没有任何东西被保存到数据库中。我已经用它捣乱了好几个小时,但却无法让它发挥作用。
感谢任何帮助。
以下是相关代码..
这是我的add / model.py
from django.db import models
from django.forms import ModelForm
class addTask(models.Model):
task = models.CharField('Task', max_length=60)
taskNotes = models.CharField('Notes', max_length=600)
def __unicode__(self):
return self.task
class addTaskForm(ModelForm):
class Meta:
model = addTask
模板/ addTHEtask.html。这被正确引用。
<form action="/todo/" method="post">
{{ form.as_p }}
<input type="submit" value="Add Task" />
</form>
添加/ views.py
from django.shortcuts import render_to_response
from django.template import RequestContext
from myToDo.add.models import addTask, addTaskForm
def create_task(request):
if request.method == 'POST':
form = addTaskForm(request.POST)
if form.is_valid():
form.save()
else:
form = addTaskForm()
return render_to_response('addTHEtask.html', {'form': form})
答案 0 :(得分:1)
要正确调试代码,请将模板更改为:
<form action="/todo/" method="post"> {{ csrf_token }}
{{ form.errors }}
{{ form.as_p }}
<input type="submit" value="Add Task" />
</form>
您的观点:
def create_task(request):
if request.method == 'POST':
form = addTaskForm(request.POST)
if form.is_valid():
form.save()
else:
form = addTaskForm()
return render_to_response(
'addTHEtask.html',
{'form': form},
context_instance=RequestContext(request))
我认为context_instance不会对您有任何重要意义,但在使用render_to_response时通常是正确的。
显示表单中的错误可能有助于您找出实际问题。除了缺少的csrf_token之外,您的代码(大多数)看起来是正确的。添加令牌并显示任何错误,应该会显示出错的地方。