gpt4 book ai didi

Django 表单集 : Identifying the invalid form within a formset

转载 作者:行者123 更新时间:2023-12-02 21:09:34 24 4
gpt4 key购买 nike

我正在使用表单集来保存我的数据,但是当其中一个表单无效时,这意味着 my_model_formset.is_valid() 返回 False 我不知道哪个表单一是无效。如何准确找到哪个表单无效,以便向用户返回精确的错误消息:

def my_model_detail(request, obj_id):
MyModel = get_object_or_404(Event, pk=obj_id)
MyFormset = formset_factory(MyForm)
if request.method == 'POST':
my_model_formset = MyFormset(request.POST)
if my_model_formset.is_valid():
# save the all the data in atomic transaction
# send success notification
else:
# detect which form within the form set is invalid
# send error notification
return redirect(reverse('my-model-detail-view', kwargs={'obj_id': obj_id}))

事实上,此外我还希望能够忽略无效的表单并仅保存有效的表单。

最佳答案

您可以使用 formset.errors 访问表单集的错误。它是一个包含表单集中每个表单的错误的列表。

如果要单独处理表单,可以循环遍历表单集的表单。然后,您可以像平常一样处理每个表单,检查 form.is_valid()form.errorsform.cleaned_data 等.

if formset.is_valid():
print("Formset is valid")
else:
# Formset is invalid, process forms individually
for form in formset:
if form.is_valid():
# process form
else:
# do something with form.errors

请注意,可能存在不属于特定表单的错误。您可以使用 formset.non_form_errors() 访问这些内容。

关于Django 表单集 : Identifying the invalid form within a formset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34264644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com