如果找不到页面,则转到默认页面而不是显示404

时间:2015-06-06 13:44:52

标签: python django

我有一个包含用户名和用户ID的模型。 我创建了一个视图,如果我尝试访问类型

的链接,将向我显示该信息
page_type

我通过创建一个看起来像这样的简单视图来做到这一点。

serverAddress/users/<user_id>/

如果找到了我的数据库中不存在的用户ID,而不是显示 404页面找不到错误我想显示一个表单,以便新用户不存在id可以注册。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

为此,您无法使用get_object_or_404方法。但您可以使用try...except语句来捕获RegUser.DoesNotExist异常。

编辑:固定代码。

def detail(request, user_uuid):
    try:
        user = RegUser.objects.get(user_uuid=user_uuid)
        # do something
    except RegUser.DoesNotExist:
        return HttpResponseRedirect('/url/of/register/page/')

    return render(request, 'accessManager/detail.html', {'user': user})

答案 1 :(得分:1)

按照上一个回答:它应该是

def detail(request, user_uuid):

    try:
        user = RegUser.objects.get(user_uuid=user_uuid)
    except:
        user = None

    if user:
        return render(request, 'accessManager/detail.html', {'user': user})
    else:
        return render(request, 'accessManager/new_user.html')