问题标签 [django-validation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - Django - 如何在表单验证中记住值并显示错误?
我不知道如何记住值并在表单验证中显示错误。
这是我的代码:
模板.html:
视图.py:
关于这个模板有什么问题的一些线索,并认为没有得到错误并且不记得表单的值?
此致,
django - 是否可以将 Django F() 表达式与 full_clean() 一起使用进行原子更新?
我刚刚发现分配有 DjangoF()
表达式的字段无法验证。我修改了 Django 文档中的示例:
我得到:ValidationError: {'number_sold': [u"'(+: (DEFAULT: ), 0)' value must be an integer."]}
。实际上, number sold 不是整数,而是 的一个实例django.db.models.expressions.ExpressionNode
。
有没有解决的办法?我所有的模型都扩展了一个在每次保存时自动调用的基类,full_clean()
我真的很喜欢保留这个基类,但能够使用原子更新。
python - Django:检查对象是否存在但不是对象的当前实例
我已经为一个项目组装了一个基本的 CMS 系统,并且我正在添加一个订单系统,以便您可以在导航栏中对创建的页面进行排序。不幸的是,我编写的自定义验证器有点激进,并且在您编辑页面时会引发错误,因为正确地,该订单已经存在于数据库中。
表单基于的模型:
自定义验证器:
在执行更新时,我有什么办法让自定义验证器仅在新订单已经存在但不是当前页面对象的情况下引发错误。就像是:
谢谢!
django - 如果我不想打电话给 clean_() 方法,我能做到吗?
Django:如果我不想调用 clean_() 方法,我可以这样做吗?
有时,我想使用表单验证来仅验证“电子邮件”字段。
如下所示:
有办法吗?
django - django模型:在保存对象之前检查关系
我有 django 模型由两个类annualReport
和annualReportAttachment
两个模型之间的关系是oneToMany
。在管理表单中,我需要验证用户是否上传了至少一个文件,因此我在annualReport
类中使用以下 clean 方法
问题是附加文件尚未保存,因此attachments
变量为空并且表单总是引发该错误。
如何检查用户是否至少上传了一个文件?
django-forms - 表单字段中的 Django 字母数字验证
我想执行字段验证,但条件是
1)该字段应该有10个字符。
2)前 5 个字符应该是字母,接下来的 5 个字符应该是数字
我对最大长度检查进行了验证,但其余的事情如何执行。这可以在单个“if”条件下完成。
我正在谷歌中搜索执行该操作的逻辑,但不知道。任何人都可以帮助我执行相同的操作。
forms.py 用于长度检查
我正在使用此代码来执行此操作,但它不起作用。
谢谢
django - 在 django 中调用 create 时是否隐式调用 save()?
我正在尝试对模型执行一些自定义验证,但我很困惑。让我具体一点。假设我的代码如下:
现在,当我从 shell 使用这个模型时,如果我调用:
f = Foo.objects.create_foo("")
在我有机会在 f 上调用 save() 之前,它会引发验证错误。为什么会这样?不应该只在我调用 f.save() 后才引发验证错误吗?
注意:如果我使用 objects.create() 而不是自定义定义的 create 方法,也会发生同样的事情。任何帮助将不胜感激,因为我发现 django 中的验证相当令人沮丧。
django - Django - 防止重复记录
我的数据库中有一个客户记录列表。每年,我们都会为每个客户生成一个工单。然后,对于每个工单记录,用户应该能够创建特定于工单的注释。然而,并不是所有的工单都需要备注,只是一些。
现在,我不能简单地将note
字段添加到工单,因为有时我们需要在工单生成之前创建注释。有时,此注释特定于 2-3 年内不会发生的工作订单。因此,笔记和工单必须是独立的,尽管当它们都存在时它们会“找到”对方。
好的,情况就是这样。我希望用户能够填写一个非常简单的note
表单,其中有两个字段:noteYear
和note
. 因此,他们所做的就是选择一年,然后写下笔记。更重要的是,用户不应该能够为同一个客户在同一年创建两个笔记。
我想要得到的是通过确保该客户在那一年没有笔记来验证笔记。我假设这将通过is_valid
表单中的自定义方法来实现,但我不知道如何去做。
这是我到目前为止所尝试的(请注意,我知道这是错误的,它不起作用,但这是我迄今为止的尝试):
请注意,这systemID
是我的客户记录
我的模型:
我的表格:
编辑——这是我的解决方案(感谢 janos 让我朝着正确的方向前进)
我的最终形式如下所示:
对于其他查看此代码的人来说,唯一令人困惑的部分是具有以下内容的行:sysID = sysID.systemID
. 这systemID
实际上是另一个模型的一个领域——尽管systemID
也是这个模型的一个领域——可能是糟糕的设计,但它确实有效。
django - 当主表单不验证时验证 inline_formsets
我有一个估计,其中包含有关潜在客户的详细信息。名字,地址等东西。简单的东西。然后,我有一些inlineformset
与主要估算相关的产品、劳动力等。
我遇到的问题有点像 22。我的想法是我会以这种方式进行验证:
- 跑
mainForm.is_valid()
- 如果主表单验证,则将其保存并移至“子”表单(
inlineformset
s) - 跑
my_inlineformset.is_valid()
- 如果
my_inlineformset
验证通过,则也将其保存 - 并mainForm
通过mainForm
ID 将其“附加”到 。
这里有一个问题:如果主表单没有验证,那么它就不会保存。如果它不保存,我没有什么可以“附加”inlineformset
到的。因此,当mainForm
不验证并且我被踢回表单以修复错误时,inlineformset
将是空白的。因此,如果用户在表单上填写了一堆东西,inlineformset
但是mainForm
当他们被踢回表单以修复他们的错误时,他们的所有数据inlineformset
都消失了。
我试图通过首先保存inlineformset
并仅在主表单验证后将其附加到主表单来规避此问题。这样做的问题是,我可以白白保存一堆 s——inlineformset
它们永远不会附加到估计值上。我不想要一整套没有附加到任何东西的记录,基本上,它们只会在数据库中不必要地漂浮。
这是我的视图代码:
所以你可以看到,如果 main 没有验证,那么我FormSet
的 s 将永远不会被检查验证(然后它会抛出一个pform
在启动之前调用的错误)。但是,如果我pform
在 main 之前验证,那么我如何“附加”pform
到main
ifmain
本身不验证(因此不保存)?
那么,如果同一页面上的另一个表单没有验证,如何保持内联表单集数据呢?
编辑
我想知道是否将这个页面(有 4 个表单——一个主表单和 3 个内联表单)拆分为 4 个步骤。用户必须分别填写每个表格。这样我就可以安全地验证,而不必担心我上面提到的问题。当然,这似乎让用户做的工作比必要的多。
python - Django 表单自定义日期验证
我有一个 django 类,它有两个日期属性——一个开始日期和一个结束日期。我想制定一个自定义验证要求,说明开始日期必须在结束日期之前(或在同一日期)。我知道这涉及自定义验证,但真的不知道应该去哪里(在模型中?在视图中?等)。
有什么建议吗?谢谢。