错误:模板不存在

0 投票
2 回答
543 浏览
提问于 2025-04-18 05:01

我在一个项目里有两个应用,第一个应用是主应用,里面有主页和关于页面,第二个应用是联系页面。

这是我在联系应用里的 contact/urls.py 文件:

from .views import ContactFormView

urlpatterns = patterns('',
                       # URL pattern for the ContactView
                       url(regex=r'^contact/$', view=ContactFormView.as_view(), name='contact'),
)

这是主应用的 pages/urls.py 文件:

from django.conf.urls import patterns, url

from .views import AboutPageView, HomePageView


urlpatterns = patterns('',
                       url(regex=r'^$', view=HomePageView.as_view(), name='home'),
                       url(regex=r'^about/$', view=AboutPageView.as_view(), name='about'),

)

在主应用的 pages/views.py 文件里:

from vanilla import TemplateView

class HomePageView(TemplateView):
    template_name = "pages/home.jade"

class AboutPageView(TemplateView):
    template_name = "pages/about.jade"

class ContactFormView(TemplateView):
    template_name = "contact/email_form.jade"

我遇到了一个错误,提示 django.template.base.TemplateDoesNotExist

错误信息是:TemplateDoesNotExist: /contact/email_form.jade

我不太明白为什么会这样,设置文件看起来没问题,我可以正常打开主页,菜单里也有联系页面的选项,但当我点击联系时就出现了上面的错误。希望能得到一些帮助,谢谢!

2 个回答

0

确保你在 app.yaml 文件中没有把模板所在的任何父目录标记为 static

App Engine 会把静态文件和应用程序文件分开存储和提供服务。静态文件在应用程序的文件系统中是无法访问的。

如果你发现有这样的情况,可以找一个单独的目录来放静态文件,或者你也可以选择在静态文件的配置块中使用

application_readable: True,这样文件系统就可以读取这些文件了。

更多详细信息请查看这里

1

你应该把 email_form.jade 文件放在 /templates/contact 这个文件夹里。或者把它放在 /templates/pages 里,然后把那一行改成 template_name = "pages/email_form.jade"。

撰写回答