Str*_*yer 5 django django-forms
我需要在使用is_valid()验证表单后调用API函数.此API调用仍然可以抛出异常,这反过来可能会使表单中的字段无效.
我怎样才能做到这一点?我正在寻找类似的东西:
def smstrade(request):
if request.method == "POST":
form = SomeForm(request.POST)
if form.is_valid():
try:
api_call(...)
except SomeException:
form["field"].set_valid(False)
Run Code Online (Sandbox Code Playgroud)
小智 6
稍晚,但您可以通过设置form._errors使表单无效并添加显示相应的消息
>>> f.is_valid()
True
>>> f._errors['my_field'] = ['This field caused a problem']
>>> f.is_valid()
False
>>> str(f)
... <ul class="errorlist"><li>This field caused a problem</li></ul>
Run Code Online (Sandbox Code Playgroud)
我需要使用FormView.form_valid()具有唯一字段的方法和模型来完成此操作
def form_valid(self, form):
obj = User(**form.cleaned_data)
try:
obj.save()
except IntegrityError:
form._errors['username'] = ['Sorry, already taken']
return super(MyView, self).form_invalid(form)
return super(MyView, self).form_valid(form)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2541 次 |
| 最近记录: |