Таким образом, на данный момент, если пользователи хотят добавить комментарий к сообщению на моем сайте, он переносит их на другую страницу с формой на нем.Тем не менее, я хочу, чтобы форма комментария находилась на самой странице подробностей публикации, поэтому пользователям не нужно переходить на другую страницу, чтобы комментировать.
До сих пор я пытался добавить некоторые контекстные элементы и изменил URL длярасположение формы комментария в post_detail.html
и поместите туда код comment_form.html
, однако это не сработало.
Вот соответствующие views.py
Представления add_comment_to_post
@login_required(login_url='/mainapp/user_login/')
def add_comment_to_post(request,pk):
post = get_object_or_404(Post,pk=pk)
if request.method == 'POST':
form = CommentForm(request.POST)
if form.is_valid():
comment = form.save(commit=False)
comment.post = post
comment.author = request.user # add this line
comment.save()
return redirect('mainapp:post_detail',pk=post.pk)
# remove `def form_valid`
else:
form = CommentForm()
return render(request,'mainapp/comment_form.html',{'form':form})
Вот вид PostDetailView
.
class PostDetailView(DetailView):
model = Post
Вот код comment_form.html
<form class="post-form" method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="submitbtn">Comment</button>
</form>
А вот соответствующие urls.py
файлы
path('post/<int:pk>/comment/', views.add_comment_to_post, name='add_comment_to_post'),
path('post/<int:pk>', views.PostDetailView.as_view(), name='post_detail'),
Итак, в тот момент, когда я думал, что это будет работать, я добавил код comment_form.html в документ post_detail.html, однако он показывал только кнопку Comment
html.Как я могу разместить CommentForm на той же странице, что и страница сведений о сообщении?
Спасибо за любую помощь:)