Почему моя попытка поймать решение не работает, как я ожидаю
Я пытаюсь проверить форму в проекте 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
Буду признателен за помощь в этом.
2 ответа
Решение
Вы импортировали NotFound
от python-keystoneclient
? Единственный способ, которым ваш код будет работать, - это если у вас есть эта строка где-то еще в вашем файле:
from keystoneclient.exceptions import NotFound
Я не знаю об исключении NotFound. Это что-то, что вы написали сами или, возможно, вы хотели использовать подобное исключение звука Django?