Django 1.7现在更改模板名称TemplateDoesNotExist错误

时间:2016-01-28 15:48:33

标签: python html django templates django-templates

所以我将注册模板的名称从user_form.html更改为register.html。我也在urls.py文件中更改了它以反映新名称,但是当我尝试转到注册页面时,我得到以下内容:

Exception Type: TemplateDoesNotExist 
Exception Value:web/user_form.html 

Template-loader postmortem

Django tried loading these templates, in this order:

Using loader django.template.loaders.filesystem.Loader:

Using loader django.template.loaders.app_directories.Loader:

../swl/root/lib/pythpy2.7.egg/django/contrib/admin/templates/web/user_form.html (File does not exist)

../django/contrib/auth/templates/web/user_form.html (File does not exist)

../templates/web/user_form.html (File does not exist)

..tastypie/templates/web/user_form.html (File does not exist)

../bootstrap3/templates/web/user_form.html (File does not exist)

../web/templates/web/user_form.html (File does not exist)

为什么模板加载器仍在寻找旧的文件名?

编辑:这是我注册的网址:

url(r'register/?$', UserCreate.as_view(), { 'template_name':'accounts/register.html' }, name = 'register'),

3 个答案:

答案 0 :(得分:0)

尝试将所有文​​件中的所有user_form.html替换为registration.html。您可以使用文本编辑器或IDE的Find/replace in files功能(或类似功能)。

url更改为:

url(r'register/?$',
    UserCreate.as_view(template_name='accounts/register.html'),
    name = 'register')

答案 1 :(得分:0)

当没有显式声明名称时,基于类的视图将尝试使用默认模板名称。 (CreateView使用(appname)/(model)_form.html)您的选择是:

  1. 使用默认名称
  2. 命名模板
  3. 在网址中指定模板(如弗拉基米尔的答案)
  4. 在视图代码中指定模板名称,如下所示:

    类UserCreate(CreateView):

    template_name = "accounts/register.html"
    
  5. 希望这有帮助

答案 2 :(得分:0)

重新启动apache服务器。 对于Ubuntu服务器20:

/etc/init.d/apache2 restart