Django/Python捕获异常不工作?

Django/Python捕获异常不工作?,python,django,exception,Python,Django,Exception,这个代码应该不起作用吗 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" 类别是一个整型字段。当用户输入URLhttp://myurl.

这个代码应该不起作用吗

    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"
类别是一个整型字段。当用户输入URL
http://myurl.com?category=
其中类别没有值


谢谢你的帮助

试试这样的方法:

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

试着这样做:

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

不需要
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.."

不需要
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.."

不,它不起作用。它有缩进错误;)谢谢你的回复。如果您谈论的是缩进和缩进中的代码,那么在我的IDE中它是正确的。所以不喜欢正确粘贴缩进…”“所以不喜欢正确粘贴缩进”。在我的经验中,这一直是错误的。很可能你还有其他问题,比如标签和空格的混合。不,它不起作用。它有缩进错误;)谢谢你的回复。如果您谈论的是缩进和缩进中的代码,那么在我的IDE中它是正确的。所以不喜欢正确粘贴缩进…”“所以不喜欢正确粘贴缩进”。在我的经验中,这一直是错误的。很可能你还有其他错误,比如混合制表符和空格。+1,我认为最好只做:
category=request.GET.GET(“category”)
,默认情况下,如果不在字典中,category将为None。+1,我认为最好只做:
category=request.GET.GET(“category”)
默认情况下,如果不在字典中,类别将为“无”。我收回这一点。我得到一个
int()参数必须是字符串或数字,而不是没有ifah的'NoneType',对吧。。这是一个
类型错误
,而不是
值错误
;编辑了答案,我收回了。我得到一个
int()参数必须是字符串或数字,而不是没有ifah的'NoneType',对吧。。这是一个
类型错误
,而不是
值错误
;编辑了答案