Django / Python ловить исключение не работает? - PullRequest
0 голосов
/ 20 апреля 2011

Должен ли этот код не работать?

    if request.GET.has_key("category"):
        try:
            post_list = post_list.filter(category=request.GET.get("category"))
        except ValueError:
            print "Category is not an integer"

Категория - это IntegerField. Я пытаюсь обработать случай, когда пользователь вводит URL http://myurl.com?category=, где категория не имеет значения.

Спасибо за вашу помощь!

Ответы [ 2 ]

3 голосов
/ 20 апреля 2011

Попробуйте что-то вроде этого:

category = request.GET.get("category")
if category:
    try:
        post_list = post_list.filter(category=int(category))
    except ValueError:
        print "That's not an integer"
2 голосов
/ 20 апреля 2011

Нет необходимости в операторе if, request.GET.get вернет None, если он не установлен.

try:
    post_list = post_list.filter(category=int(request.GET.get("category")))
except ValueError:
    print "Category is not an integer"
except TypeError:
    print "no Category passed.."
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...