- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 model_formset,使用 can_delete=True 创建,并将相应的 form.DELETE 复选框添加到模板中。当我收到 POST 请求时,我尝试保存表单:
if formset.is_valid():
formset.save()
但是,在 is_valid 方法中,django 确定删除的表单不会被删除,当然,它不会验证。
我检查了源代码,似乎“DELETED”没有进入clean_data。Django 执行此检查:
def _should_delete_form(self, form):
return form.cleaned_data.get(DELETION_FIELD_NAME, False)
我检查了 request.POST 字典,检查就在那里,这意味着它应该在 clean_data 字典中。
这个字典什么时候填充,以便我可以进一步跟踪问题?我似乎没有找到它并怀疑它与某些元类有关
最佳答案
您必须深入了解一下源代码:
def is_valid(self):
"""
Returns True if the form has no errors. Otherwise, False. If errors are
being ignored, returns False.
"""
return self.is_bound and not self.errors
@property
def errors(self):
"Returns an ErrorDict for the data provided for the form"
if self._errors is None:
self.full_clean()
return self._errors
调用 self.full_clean()
。现在这个方法已经
self._clean_fields()
self._clean_form()
self._post_clean()
填充cleaned_data
并进行必要的验证/处理。
关于python - clean_data 何时填充到 Django 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24901539/
我有一个 model_formset,使用 can_delete=True 创建,并将相应的 form.DELETE 复选框添加到模板中。当我收到 POST 请求时,我尝试保存表单: if forms
我正在 django 中做一些密码确认表单。但我很困惑,因为 self.cleaned_data.get('confirm_password') 总是不返回任何内容,因此我的密码永远不会相互匹配。 这
我创建了一个 inlineformset_factory 如下: formset = inlineformset_factory(Author, Book, form=BookForm,
我正在尝试为我的一门类(class)制作搜索表单。表格的型号是: from django import forms from django.forms import CharField, ModelM
我正在编写 django 教程,并尝试使用 clean_data 属性验证表单。 forms.py 文件的代码是 from django import forms from .models imp
我是一名优秀的程序员,十分优秀!