无法使用django视图

时间:2017-10-25 10:26:31

标签: python django django-views

我正在尝试使用登录凭据转到其他页面,但出于某种原因,获取模板不存在错误,这是我的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

1 个答案:

答案 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中。