如何正确处理KeyErrors

时间:2013-02-17 19:24:47

标签: django

作为Django的新手,我还在学习绳索,下面我的问题不是直接用语法,而是最好的方法。

如果在网址中没有传递任何值,您将如何处理类似下面的内容。我收到了错误。

  cat_id = self.request.GET.get('cat_id', '')
        return Product.objects.filter(category=cat_id)

2 个答案:

答案 0 :(得分:2)

from django.shortcuts import get_object_or_404

cat_id = self.request.GET.get('cat_id', '')

# 404 if the category deosn't exist
category = get_object_or_404(Category, pk=cat_id)

# filter for products based on a known existing category
products = Product.objects.filter(category=category)

在其他情况下,我可能会做这样的事情

if 'cat_id' in self.request.GET:
    cat_id = self.request.GET.get('cat_id')
    # now do stuff with cat_id

答案 1 :(得分:1)

使用0作为默认值而不是空字符串。