小编roi*_*363的帖子

Django LoginView 不会覆盖属性

我正在尝试覆盖 Django 应用程序中的属性,但由于某种原因,我无法覆盖 LoginView 的某些属性。我尝试将其作为我自己的基于类的视图和直接在 urlconfig 上执行,将属性作为参数传递给 as_view 函数,但没有任何效果。

更具体地说,我正在尝试覆盖 template_name,但似乎 Django 忽略了我的论点并仍在尝试查看“registration/login.html”,即使我已经在另一个中传递了我自己的 HTML 模板的另一个路径目录。我究竟做错了什么?

这是我的代码,或者我如何尝试使用它:

url(r'^accounts/logout/$', auth_views.LogoutView.as_view(template_name='accounts/login.html')),
Run Code Online (Sandbox Code Playgroud)

或者

class SigninView(LoginView):
template_name = 'login.html'

def get(request):
    form = LoginForm
    return render(request, self.template_name, {'form':form})
Run Code Online (Sandbox Code Playgroud)

我已经尝试更改模板名称的名称(或路径),无论是作为 as_view 函数还是在我创建的基于类的视图上,但 Django 总是寻找这个特定路径 - '/registration/login.html' -基本上到原点路径。因此,我认为 Django 由于某种原因无法识别我的覆盖并查找在 LoginView 中设置的原始属性。

错误:

    TemplateDoesNotExist at /accounts/login/
registration/login.html
Request Method: GET
Request URL:    http://localhost:8000/accounts/login/
Django Version: 1.11.6
Exception Type: TemplateDoesNotExist
Exception Value:    
registration/login.html
    Request Method: GET
Request URL:    http://localhost:8000/accounts/login/...

Template-loader postmortem
Django tried loading these templates, in this …
Run Code Online (Sandbox Code Playgroud)

python django

7
推荐指数
1
解决办法
426
查看次数

标签 统计

django ×1

python ×1