Django 告诉我模板不存在



有人能告诉我为什么django告诉我模板不存在吗?当点击"报告"按钮时,我想从film_detail.html转到film_port.html。。。

视图.py

class FilmReport(LoginRequiredMixin, UpdateView):
model = Report
fields = ["comment", "reporter", "reports"]
# def __str__(self):
#     return self.title
def form_valid(self, form):
form.instance.author = self.request.user
return super().form_valid(form)

urls.py

app_name = 'watchlist'
urlpatterns = [
path("", views.films_view, name="board-home"),
path("film/add", FilmAddView.as_view(), name="film-add"),
path("film/<int:pk>/", FilmDetailView.as_view(), name="film-detail"),
path("film/<int:pk>/report", FilmReport.as_view(), name="film-report")
]

film_detail.html

{% extends "board/base.html" %}
{% block content %}
<article class="media content-section">
<img class="rounded-circle film-img" src="/media/{{object.poster}}">
<!-- Mulighet for å ha en "add review"-knapp på siden der hvor filmene vises. -->
<a href=" {% url 'watchlist:film-add' %}" class="waves-effect waves-light green btn"><i class="material-icons right">rate_review</i>add review</a>
<a href=" {% url 'watchlist:film-report' film.id%}" class="waves-effect waves-light red darken-4 btn"><i class="material-icons right">report</i>report</a>
<div class="media-body">
<h2 class="film-title">{{ object.title }}</h2>
<p class="film-plot">{{ object.plot }}</p>
</div>
</article>
{% endblock content %}

film_report.html

{% extends "board/base.html" %}
{% block content %}
<h2>Film report</h2>
<!-- <article class="media content-section">
<img class="rounded-circle film-img" src="/media/{{object.poster}}">
<div class="media-body">
<h2 class="film-title">{{ object.title }}</h2>
</div>
</article> -->
{% endblock content %}

您没有为FilmReport类指定模板名称,因此django采用默认名称。UpdateView的默认名称为<model_name>_form.html

这不是FilmDetailView的问题,因为它是从默认为<model_name>_detail.htmlDetailView派生而来的。

将模板的名称从film_report.html更改为report_form.htmlFilmReport中的template_name='film_report.html'。以下是django文档中的示例,还有更多关于其工作原理的详细信息。

最新更新