1 Востаннє редагувалося Q-bart (30.05.2015 10:03:28)

Тема: Виключення

Вітаю!
Стикнувся з такою проблемою: мені треба перевірити чи існує запис в базі даних(sqlite, django). Пробую отримати об'єкт, якого нема в базі:

ShortURL.objects.get(name='df')

Тоді отримую помилку:http://i.imgur.com/WV3u4uX.png
Якщо робити за допомогою try - except, то яке виключення тут застосовувати? Чи може є вже якесь готове рішення?

2

Re: Виключення

Так відповідь же у вас у трейсбеку:

try:
    ShortURL.objects.get(name='df')
except appshort.models.DoesNotExist:
    pass # do smth if no object found

3

Re: Виключення

Bartash написав:

Так відповідь же у вас у трейсбеку:

try:
    ShortURL.objects.get(name='df')
except appshort.models.DoesNotExist:
    pass # do smth if no object found

Дякую, але я так пробував і воно видає помилку(через те й написав сюди):

NameError: name 'appshort' is not defined

Проте, відповідь я вже знайшов:

ShortURL.objects.get(name='df').exists()

Повертає True or False

4

Re: Виключення

Q-bart написав:
NameError: name 'appshort' is not defined

Вочевидь, у файлі з кодом відсутня інструкція

import appshort
# or
import appshort.models

5

Re: Виключення

Так, напевно, бо я тільки імпортував з appshort.models

6

Re: Виключення

Q-bart написав:

Так, напевно, бо я тільки імпортував з appshort.models

from appshort.models import DoesNotExist

raise DoesNotExist