目前,我可以对帖子发表评论,但我必须转到单独的评论创建页面。我想在小组详细信息页面的帖子下方包含评论表单。我尝试使用 {% 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()
,它不是模板名称。