- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 django charField,通过 is_valid() 方法进行检查。用户应该在此字段中输入有效的逻辑表达式,因此我编写了一个解析方法,如果表达式不正确,该方法会引发异常。
如何增强 is_valid() 方法来覆盖此异常并向用户显示一条错误消息,表明其查询错误?
我读了这篇文章(https://docs.djangoproject.com/en/dev/ref/forms/validation/#cleaning-a-specific-field-attribute),但仍然不知道该怎么做。
try:
job = Job(user=request.user) # set the current user
form = JobForm(request.POST, instance=job)
if form.is_valid():
form.save()
job.execute()
messages.success(request, u'A new job with the query "{query}" was created.'.format(query=job.query))
return HttpResponseRedirect(reverse('job-index'))
return self.render_to_response({'job_form': form, 'is_new': True})
except ParseError:
return self.render_to_response({'job_form': form, 'is_new': True})
try... except-Block 应该在 is_valid() 方法内完成,这是我的意图。有人有任何提示吗?
最佳答案
您自己已经提供了问题的答案 - 您 create your own form (or model form)和 perform custom validation使用其 clean_'fieldname'()
方法对该表单的字段进行处理。例如,假设您的模型是:
class Job(models.Model):
expression_field = models.CharField(...)
...
您创建一个forms.py
:
class JobForm(forms.ModelForm):
pass
class Meta:
model = Job
def clean_expression_field(self):
# You perform your custom validation on this field in here,
# raising any problems
value = self.cleaned_data['expression_field']
if value is 'really_bad':
raise forms.ValidationError("bad bad bad")
return value
然后在您的 views.py
中使用它,就像您在示例中一样。现在,如果用户输入的值不符合您的标准,则会自动引发异常
关于python - 增强 is_valid() 但有异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9298159/
我有两个模型 class Friend(models.Model): me = models.ForeignKey(User) friend = models.Foreig
在我的 Django 应用程序中,即使我添加了与管理应用程序相同的数据,表单也永远不会返回 true。我的 model.py 看起来像: from django.db import models fr
我有一个EmailField(primary_key=True)。我使用 ModelForm 向用户呈现表单,并在回发时调用 form.is_valid()。 我在该字段中看到两种类型的错误。一是主键
这是 models.py from django.db import models class RegisterForm(models.Model): fname = mode
我有一个 View ,它验证表单中的数据,该表单只包含有关项目的一些基本信息。我很困惑 is_valid即使在阅读后,方法也可以在这里工作 this .如果用户没有输入一些必填字段,如名称或图像 1,
我是网络开发的真正初学者。以下代码在 is_valid() 处失败检查。但我不明白为什么:表单是否应该从 POST 数据中获取其数据? 型号: class Statement(models.Model
伙计们!我有这个用户模型的序列化器类 class UserSerializer(serializers.ModelSerializer): username = serializers.Reg
git repo : django tutorial 我一直在关注上述 django 项目,该项目着眼于创建人与人之间的聊天。我遇到过这部分: def message_list(request, se
我正在学习 Django,并且偶然发现了一些我需要帮助的东西: forms.py class UserForm(forms.ModelForm): password1 = forms.Char
在我的 Django 应用程序中,我有一个从简单(非模型)表单创建的表单集,其中 extra=1 (以允许 javasript 稍后添加更多表单)。 class SomeForm(forms.Form
我在掌握如何执行此操作时遇到了一些麻烦。我已经尽最大努力搜索谷歌,但没有任何运气。 我将从一些代码开始并解释我正在尝试做的事情: 模型.py class Action(models.Model):
我有一个 django charField,通过 is_valid() 方法进行检查。用户应该在此字段中输入有效的逻辑表达式,因此我编写了一个解析方法,如果表达式不正确,该方法会引发异常。 如何增强
如何在调用 is_valid() 方法后更改表单字段值? 在使用 form.is_valid 验证数据后,我试图更改字段 u_id(这是必需的)。我可以更改数据,甚至可以将其显示在 HttpRespo
我正在尝试使用Django 1.10.5建立一个网站。目前,我正在研究一种在前端编辑数据库对象的方法。我的计划是定义一个表单“EditForm”,用户在其中输入要编辑的对象的ID。当我仅在实际站点上测
我有一个简单的 Django 代码。 models.py 文件中有我的模型和表单: from django.db import models from django.forms import Mode
问题 我正在尝试让 LightOpenID 与 Google Apps Enterprise 帐户一起使用。我收到“找不到服务器!”当我调用 validate() 时。我模拟了一个快速页面来测试 Li
我创建了一个表单,它是 forms.ModelForm。在“ View ”方面,我创建了一个 generic.UpdateView View 。 在这两个不同的类中,一侧有 is_valid(),另一
我有这些模型: class Gallery(models.Model): HeadImage = models.ImageField(upload_to="gallery",blank=True
Form.is_valid() 始终返回 false,并且从不显示任何类型的错误。以下是 forms.py、views.py 和 template/transaction_add_page.html
我使用 modelformset_factory 创建了一个简单的联系表单,以使用数据库模型在 View 中构建表单。我遇到的问题是 save() 之前的 is_valid() 检查不起作用。当我提交
我是一名优秀的程序员,十分优秀!