Django 2.0 - 渲染错误的模板(没有错误)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 2.0 - 渲染错误的模板(没有错误)相关的知识,希望对你有一定的参考价值。

我正在尝试加载模板visit_form.html,这是一个带有表单的DetailView。每次我点击main.html的链接时,错误的模板都会被加载 - > main_detail.html。我已经清除了浏览器缓存,无效的缓存。

目标是让MainVisitDisplay渲染visit_form.html,但我得到的只是main_detail.html。当我更改main_detail.html模板的位置时,它会引发main_detail.html的错误,并抛出“TemplateDoesNotExist”错误,寻找main_detail.html模板。

我的MWE是:

URLs.朋友

from django.conf.urls import url
from . import views
from django.urls import path

urlpatterns = [
    path('', views.index, name='index'),
    path('main/', views.MainListView.as_view(), name='main'),
    path('main/<int:pk>/', views.MainDetailView.as_view(), name='main_detail'),
    path('visit/add/<int:pk>/', views.MainVisitDisplay.as_view(), name='visit_form'),
]

views.朋友

class MainVisitDisplay(DetailView):
    model = Main
    template = "visit_form.html"

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['form'] = VisitForm()
        return context


class MainDetailView(generic.DetailView):
    template_name = "clincher/main_detail.html"
    model = Main

main.html(模板)网址

{% url 'clincher:visit_form' main.id %}
答案

这真的很简单。使用template_name = "template_name.html"而不是template = "template_name.html。不知道为什么它一直在渲染其他模板。另外,显然,Django 2.0不会缓存模板,但可以随意确认或否认这一点。

以上是关于Django 2.0 - 渲染错误的模板(没有错误)的主要内容,如果未能解决你的问题,请参考以下文章

模板不存在“django 2.0”

在 Django/GAE 中渲染包含的文件时没有显示错误

通过模板渲染图像时出现 Django Unicode 错误

模板渲染期间的 Django 错误。找不到带有参数“(”,)'和关键字参数''的'name'的反向

检测图像错误django模板

渲染视图在模板中包含 django 位置字段