为什么我的 try catch 解决方案没有像我预期的那样工作
Why is my try catch solution not working as I expect it
我正在尝试验证 Django 项目中的表单,验证的一部分是检查项目是否存在。
环境:
python 3.6.3
django 1.10.8
python-keystoneclient 3.14.0
我目前有这张支票
def clean_projectname(self):
submitted_data = self.cleaned_data['projectname']
newproj = "PROJ-FOO" + submitted_data.upper()
keystone = osauth.connect()
try:
project = keystone.projects.find(name=newproj)
raise forms.ValidationError('The project name is already taken')
except NotFound:
return submitted_data
try 部分将 return 一个项目对象,或者它将有一个 404 未找到异常。
我尝试在 NotFound 上排除,但 Django 给我一个错误
name 'NotFound' is not defined
我将不胜感激。
您是否从 python-keystoneclient
导入了 NotFound
?如果您的文件中的其他地方有此行,您的代码将起作用的唯一方法是:
from keystoneclient.exceptions import NotFound
我不知道 NotFound 异常。它是您自己编写的,还是您打算使用类似声音的 Django 异常?
我正在尝试验证 Django 项目中的表单,验证的一部分是检查项目是否存在。
环境:
python 3.6.3
django 1.10.8
python-keystoneclient 3.14.0
我目前有这张支票
def clean_projectname(self):
submitted_data = self.cleaned_data['projectname']
newproj = "PROJ-FOO" + submitted_data.upper()
keystone = osauth.connect()
try:
project = keystone.projects.find(name=newproj)
raise forms.ValidationError('The project name is already taken')
except NotFound:
return submitted_data
try 部分将 return 一个项目对象,或者它将有一个 404 未找到异常。
我尝试在 NotFound 上排除,但 Django 给我一个错误
name 'NotFound' is not defined
我将不胜感激。
您是否从 python-keystoneclient
导入了 NotFound
?如果您的文件中的其他地方有此行,您的代码将起作用的唯一方法是:
from keystoneclient.exceptions import NotFound
我不知道 NotFound 异常。它是您自己编写的,还是您打算使用类似声音的 Django 异常?