У меня есть charfield django, который проверяется методом is_valid(). Предполагается, что пользователь должен ввести действительное логическое выражение в этом поле, поэтому я написал метод синтаксического анализа, который вызывает исключение, если выражение неверно.Усиление is_valid() с исключением
Как я могу улучшить метод is_valid(), чтобы покрыть это исключение и отобразить пользователю сообщение об ошибке, что его запрос был неправильным?
Я прочитал эту статью (https://docs.djangoproject.com/en/dev/ref/forms/validation/#cleaning-a-specific-field-attribute), но до сих пор не знаю, как это сделать.
try:
job = Job(user=request.user) # set the current user
form = JobForm(request.POST, instance=job)
if form.is_valid():
form.save()
job.execute()
messages.success(request, u'A new job with the query "{query}" was created.'.format(query=job.query))
return HttpResponseRedirect(reverse('job-index'))
return self.render_to_response({'job_form': form, 'is_new': True})
except ParseError:
return self.render_to_response({'job_form': form, 'is_new': True})
Попытка ... except-Block должна быть выполнена внутри метода is_valid(), то есть моего намерения. Кто-то получил какие-то намеки?
Я писал очень похожий ответ, когда вы вошли. Хорошо сказано! – aganders3