我正在尝试使用登录凭据转到其他页面,但出于某种原因,获取模板不存在错误,这是我的views.py
def checkLogin (request):
if request.is_ajax():
param = request.POST.get('param', None)
param1 = request.POST.get('param1', None)
if (param=="admin" and param1=="admin"):
Datenow = datetime.datetime.now().strftime('%H:%M:%S')
return render(request,'./login.html',{'Datenow': Datenow})
else:
Datenow = datetime.datetime.now().strftime('%H:%M:%S')
return render(request,'../../sample.html',{'Datenow': Datenow})
return HttpResponseBadRequest()
这是我的错误,我知道我弄乱了路径,但我不确定在这种情况下的惯例是什么,试过./ ..// ..//../等等,但似乎不起作用
TemplateDoesNotExist at /sample/checkLogin/
./login.html
Request Method: POST
Request URL: http://127.0.0.1:8000/sample/checkLogin/
Django Version: 1.11.6
Python Executable: C:\Users\Halo\AppData\Local\Programs\Python\Python36\python.exe
Python Version: 3.6.2
答案 0 :(得分:1)
您无法将相对路径(../../sample.html
)传递给render()
- 该行为未定义。
Django在specific directories中查找模板。
在默认配置中,您可以依赖app_directories.Loader
,它会在您的应用中查找templates/
目录。如果您将登录模板放在<your_app_dir>/templates/login.html
中,则可以使用以下内容进行渲染:
render(request, 'login.html')
通常建议对模板进行命名,以避免冲突,例如,将其放在templates/my_app/login.html
中。