gpt4 book ai didi

python - 基于 django 类的通用 View "CreateView"独特的 slug 错误处理

转载 作者:太空宇宙 更新时间:2023-11-03 17:44:46 24 4
gpt4 key购买 nike

所以我有一个 CreateView,它 99% 都能按照我想要的方式工作。如果用户在整数字段中输入字母,它会告诉用户输入数字,如果用户将必填字段留空,它会告诉他们需要填写该字段。这一切都很棒,CreateView 会为我处理错误。然而,出于显而易见的原因,我不允许用户创建 slug 字段,这是通过将日期和其他两个字段组合起来并进行 slug 化来自动创建的。如果用户尝试创建不会导致唯一的 slug 的记录,则该表单无效,但 CreateView 不会提供任何建设性反馈(除非您处于 Debug模式,否则 UNIQUE 约束失败)。

如果我将下面的代码添加到我的 CreateView 中,那么我需要重新定义 CreateView 之前处理得很好的所有错误响应。

def form_invalid(self, form):
return HttpResponse(#define stuff here)

有没有办法让 CreateView 正常处理无效表单(就好像我没有 def form_invalid(self, form):),除非存在 slug 冲突?

最佳答案

您可以通过在重写 form_invalid 中调用父类版本的 form_invalid 来实现这一点。

示例:

class MyCreateView(CreateView):
def form_invalid(self, form):
if my_condition: # Check whatever you want
return HttpResponse('reason it failed')
else: # Or call the parent class version
return super(MyCreateView, self).form_invalid(form)

关于python - 基于 django 类的通用 View "CreateView"独特的 slug 错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29971846/

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