理解django 2fa身份验证库的问题

时间:2019-02-28 14:52:06

标签: python django

我试图将2fa添加到我的Django项目中,所以我决定采用this library

要了解其工作原理,我正在关注他们的example。我的想法是“ 合并”我当前的工作,这样我既可以拥有已经拥有的东西,也可以拥有示例给出的东西。

现在,我正在尝试编辑示例登录表单,但找不到。 通常,在django中,我希望在 views.py 文件中定义一个登录表单,它看起来像这样:

         if form.is_valid():
                username = form.cleaned_data.get('username')
                password = form.cleaned_data.get('password')
                user = authenticate(username=username, password=password)


                if user is not None:
                    login(request, user)
                    messages.info(request, f"You are now logged in as {username}")
                    return redirect("main:homepage")
                else:
                    messages.error(request, "Invalid username or password")

但是我在 example 文件夹中找不到任何类似的内容。谁能给我些帮助?

1 个答案:

答案 0 :(得分:1)

通常在Django中,我希望大多数项目都是using the batteries-included LoginView或从中衍生而来,而不是像您的示例中那样滚动自己的项目。 (实际上,即使您的示例看起来也像是一个函数视图,如果您确实需要滚动自己的登录视图,则只需从FormView派生,您将获得更少的代码。)

实际上,这或多或少在示例项目中发生了。

您可以看到here in urls.py包括了two_factor.urls的全部,其中包括a login view,它的定义是over here

(实际上,它不是从Django的登录视图派生的,但是想法是相同的。)