python - 当表单有标点符号时引发错误 django

标签 python django django-forms

当有人提交标题中带有标点符号的内容时,我需要一种方法来引发错误。我是初学者,所以不太确定该怎么做。
形式:

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/

相关文章:

python - 摘要用户django迁移错误

python - 如何从 Django 模型创建双长文本字段

python - django modelmultiplechoicefield 和 widget checkboxselectmultiple

python - "No installation candidate", "unable to find source package"在 MySQLdb 安装, Ubuntu 16

python - 修剪数据集词汇

python - Django 安装问题 No module named django.core

python - Django:将带有变量的 View 导出为纯文本下载

Python/C API - 不显示结果

python - 可以在 PostgreSQL INSERT 语句中放置的最大 VALUES 数量是多少?

django - Django:是否可以在一个通用 View 中验证和保存多种形式的字段?