我有一个特殊的UpdateView和ModelForm(用于我的Stripe集成),我想知道是否有两种方式返回对象和以简单的方式在页面上显示错误。我的直觉告诉我没有(因为异常会引发异常......),但任何见解/输入都会很棒。
这是我的自定义modelForm的clean
方法,它与UpdateView绑定。
def clean(self):
if not self.user:
raise forms.ValidationError("User needs to not be null.")
try:
cream = CREAM.create_or_update(self.user, self.stripeToken)
for field in self.Meta.fields:
self.cleaned_data[field] = getattr(cream, field)
return self.cleaned_data
except Exception as e:
raise forms.ValidationError(e.message)
这里是我们的老朋友UpdateView的get_object
def get_object(self):
cream = CREAM.objects.filter(client=self.request.user)
if cream.exists():
return cream.get()
else:
return CREAM()
非常感谢!