当有人提交标题中带有标点符号的内容时,我需要一种方法来引发错误。我是初学者,所以不太确定该怎么做。
形式:
class NeededForm(forms.ModelForm):
title = forms.CharField(max_length=120)
likes = forms.IntegerField(widget=forms.HiddenInput(), initial=0)
body = forms.CharField(min_length=50,widget = forms.Textarea)
captcha = CaptchaField()
def clean_title(self):
data = self.cleaned_data['title']
return data
class Meta:
model = Needed
fields = ('title', 'body', 'likes')
View :
def detail(request, needed_title_url):
context = RequestContext(request)
needed_name = needed_title_url.replace('_', ' ')
context_dict = {'needed_name': needed_name}
try:
needed = Needed.objects.get(title=needed_name)
context_dict['needed'] = needed
print "True!"
except:
pass
return render_to_response('needed.html', context_dict, context)
如果用户输入类似:I like Chicken!
作为标题,那么我需要向用户显示错误。
最佳答案
我不太确定能明白你的问题,但看起来你正在寻找的答案可能包含在 https://docs.djangoproject.com/en/1.6/ref/models/fields/#slugfield 中
SlugField 是一个CharField,只能包含字母、数字、下划线和连字符(因此它可以理解max_length,...)
class NeededForm(forms.ModelForm):
title = forms.SlugField(max_length=120)
likes = forms.IntegerField(widget=forms.HiddenInput(), initial=0)
body = forms.CharField(min_length=50,widget = forms.Textarea)
captcha = CaptchaField()
如果您正在寻找更复杂的规则检查,请查看验证器页面 https://docs.djangoproject.com/en/1.6/ref/validators/以及如何在表单中使用它 https://docs.djangoproject.com/en/1.6/ref/forms/validation/#using-validators 提供的示例解释了 SlugField 实现。
希望对你有帮助!
关于python - 当表单有标点符号时引发错误 django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26415334/