尝试在另一个应用的模板中包含具有 {% include %} 的表单,但遇到"TemplateDoesNotExist"



目前,我可以对帖子发表评论,但我必须转到单独的评论创建页面。我想在小组详细信息页面的帖子下方包含评论表单。我尝试使用 {% include %},但它似乎找不到形式。这可能是因为我尝试在不同的应用程序的模板上呈现表单,而不是 form.py 和comment_form.html的位置(我在"评论"应用程序中为表单创建表单和模板,并且我正在尝试将表单包含在详细信息页面上的"组"应用程序中。 以下是相关文件。

评论/表格.py

from django import forms
from .models import Comment
class CommentForm(forms.ModelForm):
class Meta:
model = Comment
fields = ('body',)

comments/comment_form.html

<h2>this is the comment form</h2>
<form class="post-form" method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="save btn btn-default">Save</button>
</form>

组/视图。详细信息 :

def detail(request, group_id):
group = get_object_or_404(Group, pk= group_id)
posts = Post.objects.filter(group__id = group_id)
form = CommentForm()
return render(request, 'groups/detail.html', {'group': group, 'posts':posts, 'form':form})

groups/detail.html:

{% include form %}

这是负责创建注释(注释/URL.py(的URL:

from . import views
from django.urls import path
app_name = 'comments'
urlpatterns = [
path('<int:post_id>/create/', views.create, name='create'),
path('delete/<int:group_id>/<int:post_id>/<int:comment_id>', views.delete, name='delete'),
]

同样,它找不到模板,可能是因为我必须让"组"应用程序知道"comment_form.html"的存在。 我该如何完成此操作?

如果你想包含comments/comment_form.html你应该这样做:

{% include 'comments/comment_form.html' %}

目前,您有{% include form %}将使用变量form- 这没有意义,因为form是一个表单实例CommentForm(),它不是模板名称。

最新更新