【发布时间】:2017-06-12 18:41:44
【问题描述】:
在处理表单提交时,我必须执行自定义逻辑(联系网络服务等)。如果失败,我想阻止创建模型 Car 的新实例。
我们通过一个简单的sn-p来演示一下:
from django.views import generic
from django.http import HttpResponseRedirect
class CarCreateView(generic.edit.CreateView):
model = Car
form_class = CarForm
def form_valid(self, form):
# some logic that may succeed or fail
if success:
messages.success(self.request, 'bla bla')
return super().form_valid(form)
else:
messages.error(self.request, 'blabla')
# How to return to form index without saving???
return HttpResponseRedirect(self.get_success_url())
不调用super().form_valid(form) 是不够的。一辆新车仍在保存中。有什么想法吗?
【问题讨论】:
标签: django django-generic-views