Python Django在未指定的位置搜索模板

Python Django在未指定的位置搜索模板,python,django,django-models,django-templates,django-admin,Python,Django,Django Models,Django Templates,Django Admin,在base.html中 <a href="/login">Log In</a> 在accountsviews.py中 from ... from accounts.views import login_view, logout_view, register_view urlpatterns = [ ... url(r'^login/', login_view), .... ] def login_view (request): requ

base.html

<a href="/login">Log In</a>
在accounts
views.py

from ...
from accounts.views import login_view, logout_view, register_view
urlpatterns = [
    ...
    url(r'^login/', login_view),
    ....
]
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})
单击
登录
时,将在
'registration/login.html'
中搜索
登录表单
模板,而不是
'accounts/login\u 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)
所有这一切都很好,直到我尝试过清除
注册/密码重置\u表单.html
注册/密码重置\u完成.html
注册/密码重置\u确认.html
注册/password\u reset\u complete.html
以实现密码重置功能

主要的
url.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'),
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\u reset\u done”),
url(r'^user/password/reset/(?P[0-9A-Za-z]+)-(?P.+)/$','django.contrib.auth.views.password\u reset\u confirm',{'post\u reset\u redirect':'/user/password/done/'),
url(r“^user/password/done/$”、“django.contrib.auth.views.password\u reset\u complete”),
有什么建议吗?谢谢


编辑:仅当
/login
/logout
/register
未用作url路径时,才会在正确位置搜索模板。我试着使用
/user\u login
/user\u logout
,和
/user\u register
,效果很好。我认为这与
url.py的内置登录冲突。如何更正此问题?

可能是您应该为您的应用程序
帐户创建
url.py

帐户
url.py

from django.conf.urls import url

from . import views

urlpatterns = [
    # ex: /accounts/
    url(r'^login/', login_view),
]
from ...
urlpatterns = [
    ...
    url(r'^accounts/', include('yourwebsite.accounts.urls')),
    ....
]
在main
url.py中

from django.conf.urls import url

from . import views

urlpatterns = [
    # ex: /accounts/
    url(r'^login/', login_view),
]
from ...
urlpatterns = [
    ...
    url(r'^accounts/', include('yourwebsite.accounts.urls')),
    ....
]
base.html

<a href="/accounts/login">Log In</a>

我有
url(r'^',包括('django.contrib.auth.url'))
上面提到的
登录
和其他url。这就是Django在
/registration/login
下寻找模板的原因。我仍然不知道为什么Django在url为
/login
时会在该位置查找模板。当url为“帐户/登录名”时,不会出现任何问题。我将
url(r'^',include('django.contrib.auth.url'))
放在urlpatterns的末尾

from django.conf import settings
from django.conf.urls import url, include
from django.conf.urls.static import static
from django.contrib import admin
from accounts.views import login_view, logout_view, register_view, reset_password_view

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^blog/', include('blog.urls')),
    url(r'^', include('personal.urls')), 
    url(r'^login/', login_view),
    url(r'^logout/', logout_view),
    url(r'^register/', register_view),
    url(r'^reset-password/', reset_password_view),
    url(r'^landing/', include('landing.urls')),
    url(r'^tracking/', include('tracking.urls')),
    url(r'^accounts/', include('accounts.urls')),
    url(r'^', include('django.contrib.auth.urls')),  # Put this in the end 
]

您是否使用任何第三方软件包登录?@itzmeontv:没有第三方..得到了解决方案。我已经把它作为答案发布了!谢谢我将其更改为
帐户/登录
,以避免进一步的问题。