gpt4 book ai didi

python - Django LoginView 不会覆盖属性

转载 作者:行者123 更新时间:2023-12-04 11:34:22 28 4
gpt4 key购买 nike

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

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

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

url(r'^accounts/logout/$', auth_views.LogoutView.as_view(template_name='accounts/login.html')),

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

def get(request):
form = LoginForm
return render(request, self.template_name, {'form':form})

我已经尝试更改模板名称的名称(或路径),无论是作为 as_view 函数还是在我创建的基于类的 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 order:
Using engine django:
django.template.loaders.filesystem.Loader: /Users/Roi/Desktop/Programming/mysite/home/templates/registration/login.html (Source does not exist)
django.template.loaders.app_directories.Loader: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/contrib/admin/templates/registration/login.html (Source does not exist)
django.template.loaders.app_directories.Loader: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/contrib/auth/templates/registration/login.html (Source does not exist)
django.template.loaders.app_directories.Loader: /Users/Roi/Desktop/Programming/mysite/home/templates/registration/login.html (Source does not exist)

正如你所看到的,我还在我的设置中添加了另一个路径,但是 django 只是添加了“registration/login.html”,所以再说一次,我可以说它只是使用原始属性,无论如何......

有任何想法吗?

最佳答案

您在“views.py”中继承了“LoginView”,但在“urls.py”中您提到了“LogoutView”。您可能没有向我们展示完整的“urls.py”代码。
也许您提到了“LoginView”而不是“SigninView”。所以 'urls.py' 使用 'LoginView' 来呈现登录页面。

关于python - Django LoginView 不会覆盖属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46846923/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com