在Django视图中测试Django会话变量并返回

2024-09-28 19:35:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试基于sessions变量集执行选择性操作。你知道吗

我就是这样试的-

   try:
        if request.session.get('firstoption', False):
            # perform operation for first option
            return redirect(reverse('first_option_view'))
    except:
        try:
            if request.session.get('secondoption', False):
                # perform operation for second option
                return redirect(reverse('second_option_view'))
        except:
            return HttpResponse("WTF!")

执行命中第一个if request.session.get('firstoption', False):它返回none,在第二个情况下,它不返回except,而是返回以下错误views.viewname didn't return an HttpResponse object。你知道吗

我做错什么了?你知道吗


Tags: falseforgetreturnifrequestsessionoperation
2条回答

get返回None或False,但不是异常;因此if没有执行yes分支,但这不是异常。您只需跳过其余的代码并退出函数而不返回任何内容。你应该有一个其他的。你知道吗

如果不希望出现任何异常,则不需要try except块。你知道吗

if request.session.get('firstoption', False):
    # perform operation for first option
    return redirect(reverse('first_option_view'))

if request.session.get('secondoption', False):
    # perform operation for second option
    return redirect(reverse('second_option_view'))

else:
    return HttpResponse("WTF!")

看起来你应该用一个表格来做这个。这样,您就可以在错误检查中内置无效输入和许多其他好处。你知道吗

相关问题 更多 >