【发布时间】:2017-07-05 09:36:35
【问题描述】:
在base.html,
<a href="/login">Log In</a>
在主urls.py,
from ...
from accounts.views import login_view, logout_view, register_view
urlpatterns = [
...
url(r'^login/', login_view),
....
]
在账户views.py,
def login_view (request):
request.session.set_expiry(request.session.get_expiry_age())
form = UserLoginForm(request.POST or None)
title = "Login"
if form.is_valid() :
username = form.cleaned_data.get("username")
password = form.cleaned_data.get("password")
user = authenticate(username=username, password=password)
login(request,user)
return HttpResponseRedirect('/')
return render(request, 'accounts/login_form.html',{ "form" : form, "title": title})
点击Log In时,login_form模板在'registration/login.html'而不是'accounts/login_form.html'中搜索。
Django tried loading these templates, in this order:
Using engine django:
django.template.loaders.app_directories.Loader: /Users/***/Desktop/django/mysite/personal/templates/registration/login.html (Source does not exist)
django.template.loaders.app_directories.Loader: /Users/***/Desktop/django/mysite/blog/templates/registration/login.html (Source does not exist)
django.template.loaders.app_directories.Loader: /Users/***/Desktop/django/mysite/landing/templates/registration/login.html (Source does not exist)
django.template.loaders.app_directories.Loader: /Users/***/Desktop/django/mysite/accounts/templates/registration/login.html (Source does not exist)
django.template.loaders.app_directories.Loader: /Library/Python/2.7/site-packages/crispy_forms/templates/registration/login.html (Source does not exist)
django.template.loaders.app_directories.Loader: /Library/Python/2.7/site-packages/pagedown/templates/registration/login.html (Source does not exist)
django.template.loaders.app_directories.Loader: /Library/Python/2.7/site-packages/markdown_deux/templates/registration/login.html (Source does not exist)
django.template.loaders.app_directories.Loader: /Library/Python/2.7/site-packages/tracking/templates/registration/login.html (Source does not exist)
django.template.loaders.app_directories.Loader: /Library/Python/2.7/site-packages/django/contrib/admin/templates/registration/login.html (Source does not exist)
django.template.loaders.app_directories.Loader: /Library/Python/2.7/site-packages/django/contrib/auth/templates/registration/login.html (Source does not exist)
在我尝试覆盖 registration/password_reset_form.html、registration/password_reset_done.html、registration/password_reset_confirm.html、
registration/password_reset_complete.html实现密码重置功能。
主要的urls.py已包含,
url(r'^user/password/reset/$','django.contrib.auth.views.password_reset',{'post_reset_redirect' : '/user/password/reset/done/'},name="password_reset"),
url(r'^user/password/reset/done/$','django.contrib.auth.views.password_reset_done'),
url(r'^user/password/reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$','django.contrib.auth.views.password_reset_confirm',{'post_reset_redirect' : '/user/password/done/'}),
url(r'^user/password/done/$','django.contrib.auth.views.password_reset_complete'),
有什么建议吗?谢谢 !
编辑 :仅当/login、/logout 和/register 不用作url 路径时,才会在正确的位置搜索模板。我尝试使用/user_login、/user_logout 和/user_register,并且成功了。我认为这与urls.py 的内置登录相冲突。如何纠正这个问题?
【问题讨论】:
-
您是否使用任何第三方软件包进行登录?
-
@itzmeontv :没有第三方......得到了解决方案。已将其发布为答案!
标签: python django django-models django-templates django-admin