【发布时间】:2016-01-03 09:24:25
【问题描述】:
所以问题是当我在views.py中调用authorSearch和deleteAuthor这两个方法时,form,is_valid()总是返回false。
models.py
class Author(models.Model):
author_name = models.CharField(max_length=200,primary_key=True)
def __str__(self):
return self.author_name
Forms.py
class AuthorForm(forms.ModelForm):
class Meta:
model = Author
fields = ['author_name',]
views.py
def authorSearch(request):
if request.method=='POST':
form = AuthorForm(request.POST)
if form.is_valid():
#some processing here
return render(request,'authorSearch.html',{})
else:
return HttpResponse('No such Author Found!')
else:
form = AuthorForm()
return render(request,'authorSearch.html',{'form':form})
def deleteAuthor(request):
if request.method=='POST':
form=AuthorForm(request.POST)
if form.is_valid():
#some processing here
return HttpResponse('Author deleted successfully!')
else:
return HttpResponse('Author deletetion failed!')
else:
form=AuthorForm()
return render(request,'deleteAuthor.html',{'form':form})
authorSearch.html
<div class='container'>
{% if request.method == 'GET' %}
<form action='' method='POST'>
<!--Some html here -->
</form>
{% elif request.method == 'POST' %}
<!--Some html here -->
{% endif %}
【问题讨论】:
-
您提交的表单是否包含空白字段?
-
不!当然不是。我正在用作者的确切姓名填写表格。
-
我猜问题出在某个地方,我将一个字符串(author_name)作为主键,其中还包括空格字符和所有内容......所以当它在views.py中比较它时可能会失败出于某种原因。
标签: python django django-forms django-validation