Django 2.0 - 呈现错误的模板(没有错误)
Django 2.0 - Rendering wrong template (with no error)
我正在尝试加载一个模板 visit_form.html
,它是一个包含表单的 DetailView。每次我从 main.html
单击 link 时,都会加载错误的模板 -> main_detail.html
。我已清除浏览器缓存,使缓存无效。
目标是让 MainVisitDisplay
呈现 visit_form.html
,但我得到的只是 main_detail.html
。当我更改 main_detail.html
模板的位置时,它抛出 main_detail.html
错误,并抛出 "TemplateDoesNotExist" 错误,寻找 main_detail.html
模板。
我的 MWE 是:
urls.py
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.py
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
{% url 'clincher:visit_form' main.id %}
这真的很简单。使用 template_name = "template_name.html"
而不是 template = "template_name.html
。不知道为什么它一直渲染其他模板。另外,显然,Django 2.0 不缓存模板,但请随意确认或否认这一点。
我正在尝试加载一个模板 visit_form.html
,它是一个包含表单的 DetailView。每次我从 main.html
单击 link 时,都会加载错误的模板 -> main_detail.html
。我已清除浏览器缓存,使缓存无效。
目标是让 MainVisitDisplay
呈现 visit_form.html
,但我得到的只是 main_detail.html
。当我更改 main_detail.html
模板的位置时,它抛出 main_detail.html
错误,并抛出 "TemplateDoesNotExist" 错误,寻找 main_detail.html
模板。
我的 MWE 是:
urls.py
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.py
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
{% url 'clincher:visit_form' main.id %}
这真的很简单。使用 template_name = "template_name.html"
而不是 template = "template_name.html
。不知道为什么它一直渲染其他模板。另外,显然,Django 2.0 不缓存模板,但请随意确认或否认这一点。