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.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

URL-адрес main.html (шаблон)

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

person Nicolas    schedule 18.06.2018    source источник


Ответы (1)


Это было очень просто. используйте template_name = "template_name.html" НЕ template = "template_name.html. Не уверен, почему он продолжал отображать другие шаблоны. Также, судя по всему, Django 2.0 не кэширует шаблоны, но вы можете это подтвердить или опровергнуть.

person Nicolas    schedule 18.06.2018