0

我正在尝试验证 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 部分将返回一个项目对象,或者它将有一个 404 not found 异常。

我试图在 NotFound 上除外,但 Django 给了我一个错误

name 'NotFound' is not defined

我会很感激这方面的帮助。

4

2 回答 2

2

你是从哪里进口NotFoundpython-keystoneclient?您的代码可以工作的唯一方法是,如果您在文件中的其他位置有此行:

from keystoneclient.exceptions import NotFound
于 2018-01-28T06:40:00.620 回答
0

我不知道 NotFound 异常。是您自己编写的,还是您打算使用类似的声音 Django 异常?

https://docs.djangoproject.com/en/2.0/ref/exceptions/

于 2018-01-28T06:41:52.100 回答