我遇到django modelform
这是模型:
class Comment(models.Model):
username=models.CharField(max_length=50)
email=models.EmailField()
content=models.TextField()
def __unicode__(self):
return unicode(self.username)
这里是modelForm:
class CommentForm(ModelForm):
class Meta:
model=Comment
在视图中:
def comment(request):
response = HttpResponse()
f = CommentForm(request.POST)
if f.is_valid():
comment = f.save(commit=False)
response.write("1")
else:
response.write("0")
return response
模板中的表单:
<form action="/comment/add/" method="post">
{% csrf_token %}
<p>Username: <input type="text" name="username"></p>
<p>Your e-mail: <input type="text" name="email"></p>
<p>Content: <textarea name="content" rows="10" cols="50"></textarea></p>
<input type="submit" value="Submit">
</form>
问题是f.is_valid()
总是False
。
但如果我定义这样的字典:
data={
'username':'test',
'email':'test@test.com',
'content':'test comment'
}
并将其放入模型形式:f = CommentForm(data)
之后,f.is_valid()
将为True
我不知道为什么,有人帮助我吗?
答案 0 :(得分:0)
确保method="POST"
标记中包含<form>
属性。并确保将{% csrf_token %}
放在表单中。