尝试使用{%include%}将表单包含在另一个应用的模板中,但获取“TemplateDoesNotExist”

问题描述 投票:0回答:1

目前,我可以对帖子发表评论,但我必须单独发表评论创建页面。我想在组详细信息页面的帖子下面添加评论表单。我曾尝试使用{%include%},但似乎无法找到表单。这是可能的,因为我试图在不同的应用程序模板上呈现表单而不是form.py和comment_form.html(我在'comments'应用程序中创建表单的表单和模板,我正在尝试将表单包含在详细信息页面的“组”应用程序中。这是相关文件。

评论/ forms.py

from django import forms

from .models import Comment

class CommentForm(forms.ModelForm):

    class Meta:
        model = Comment
        fields = ('body',)

评论/ 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>

groups / views.detail:

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})

组/ detail.html:

{% include form %}

这是负责创建评论的网址(comments / urls.py):

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'),
]

再一次,它找不到模板,可能是因为我必须让'groups'应用程序知道'comment form.html'的存在。我该如何做到这一点?

django django-models django-forms django-templates
1个回答
1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.