Django / Python 捕获异常失败?

0 投票
2 回答
1877 浏览
提问于 2025-04-16 16:06

这段代码是不是应该能正常工作呢?

    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"

这里的Category是一个整数类型的字段。我想处理一种情况,就是当用户输入的网址是 http://myurl.com?category=,而这个category没有值的时候。

谢谢你的帮助!

2 个回答

2

其实不需要用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.."
3

试试这样做:

category = request.GET.get("category")
if category:
    try:
        post_list = post_list.filter(category=int(category))
    except ValueError:
        print "That's not an integer"

撰写回答