目前,我可以对帖子发表评论,但我必须转到单独的评论创建页面。我想在组详细信息页面的帖子下面添加评论表单。我曾尝试使用{%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',)
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>
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'的存在。我该如何做到这一点?
答案 0 :(得分:1)
如果你想加入comments/comment_form.html
,你应该这样做:
{% include 'comments/comment_form.html' %}
目前,您{% include form %}
将使用变量form
- 这没有意义,因为form
是表单实例CommentForm()
,它不是模板名称。