Django奇怪的错误将我的模板名称转换为0x000000000461A128

时间:2015-07-18 21:46:06

标签: python django

我知道我搞错了因为google没有返回任何结果。我对计算机知之甚少,但0x00000blah看起来像是一些内存地址。经过几次刷新后,这个数字就会改变。

环境 Django 1.8,Python 3.4,chrome,Win7

预期行为 我想转到../accounts/login/也知道我的网址url(r'^login/$', 'django.contrib.auth.views.login', name='loginHandle')输入用户名,密码,如果已注册,则重定向到../accounts/profile,它应该在哪里呈现模板profile.html说Hello {{ username }} !之类的东西。 INSTEAD我得到这个错误

  

/ accounts / profile /

上的TemplateDoesNotExist      

django.template.backends.django.Template对象位于0x0000000004D0E400

views.py

def profile(request):
    profileTemplate = loader.get_template('registration/profile.html')
    return render(request, profileTemplate, {
        'Kitty': 10,
    })

回溯

Using loader django.template.loaders.filesystem.Loader:
D:\users\kitty\python\firstdjangosite\templates\<django.template.backends.django.Template object at 0x0000000004D0E400> (File does not exist)
Using loader django.template.loaders.app_directories.Loader:
D:\Users\kitty\Python\lib\site-packages\django\contrib\admin\templates\<django.template.backends.django.Template object at 0x0000000004D0E400> (File does not exist)
D:\Users\kitty\Python\lib\site-packages\django\contrib\auth\templates\<django.template.backends.django.Template object at 0x0000000004D0E400> (File does not exist)
D:\users\kitty\python\firstdjangosite\polls\templates\<django.template.backends.django.Template object at 0x0000000004D0E400> (File does not exist)
D:\users\kitty\python\firstdjangosite\login\templates\<django.template.backends.django.Template object at 0x0000000004D0E400> (File does not exist)
D:\users\kitty\python\firstdjangosite\accounts\templates\<django.template.backends.django.Template object at 0x0000000004D0E400> (File does not exist)

路径详情

D:\Users\Kitty\Python\FirstDjangoSite\accounts\templates>dir /s /b /o:gn
accounts
registration
accounts\index.html
accounts\invalid.html
accounts\loggedin.html
accounts\logout.html
registration\login.html
registration\profile.html

我以前做过装载机和渲染,它们工作正常。例如,如果我将profileTemplate更改为不存在的&#39; registration / helloworld.html&#39;它说

  

/ accounts / profile /

上的TemplateDoesNotExist      

登记/的helloworld.html

感谢您的时间,请帮助我感到困惑

1 个答案:

答案 0 :(得分:3)

render快捷方式采用模板名称。

def profile(request):
    return render(request, 'registration/profile.html', {
        'Kitty': 10,
    })

令人惊讶的错误消息是因为您已传递加载的模板而不是模板名称。 django.template.backends.django.Template object at 0x0000000004D0E400repr()的{​​{1}}。