【问题标题】:How to redirect via TemplateView.as_view to .html file如何通过 TemplateView.as_view 重定向到 .html 文件
【发布时间】:2016-08-20 13:01:28
【问题描述】:

我正在尝试使用以下方法创建一个重定向到简单静态 .html 文件的 url:

url(r'^impressum/', TemplateView.as_view(template_name='impressum.html'), name='impressum'),

据我了解,template_name 参数采用 .html 文件的位置。我尝试了上述代码的几种变体,尝试重定向到文件,但在加载 localhost:8000/impressum/ 时总是出现 404 错误

这就是我的Folder directory 的样子。我试过“lwc/templates/impressum.html”和“templates/impressum.html”。我在做什么错/这个路径方向是如何工作的

编辑:在我的 TEMPLATE_DIRS 设置下方:

TEMPLATE_DIRS = (
    os.path.join(BASE_DIR, 'templates'),
    )

【问题讨论】:

  • 你试过r'^impressum/$'吗?
  • 美元不应该有所作为。但是,添加它是个好主意,否则 url 模式将适用于 /impressum/other-url/ 以及 /impressum/

标签: django django-templates django-urls


【解决方案1】:

我设法找到了我的错误:

这就是我的 urls.py 的样子:

from django.conf.urls import patterns, include, url
from django.views.generic import TemplateView
from django.contrib import admin

admin.autodiscover()

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^$', 'joins.views.home', name='home'),
    url(r'^(?P<ref_id>.*)$', 'joins.views.share', name='share'),
    url(r'^impressum/$', TemplateView.as_view(template_name='impressum.html')),
)

我把 impressum url 放在顶部,然后它就成功了。我从一个教程中记得,django 如何逐行检查 url 有一定的逻辑,如果你有一个带有扩展名的 url,你必须在没有任何扩展的情况下放在 url 之前以使其工作

【讨论】:

    【解决方案2】:

    现在可能会有帮助。

    Template.as_view()
    

    这个函数看起来是默认的 django 库文件夹。 因此,将您的模板目录添加到您的 django 设置中。

    我猜你在 setting_old.py 中有设置(默认为 setting.py)。 因为该函数首先查找 TEMPLATES 目录, 将您的模板目录添加到 manage.py 文件夹之后,如下所示。

    
    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [
                'templates',   # <- here 
            ],
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    ]
    

    【讨论】:

    猜你喜欢
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 2019-09-04
    • 2013-09-12
    • 2013-01-18
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多