Html Django如何在帖子上添加评论选项

Html Django如何在帖子上添加评论选项,html,django,Html,Django,我正在开发一个博客,我想在其中添加评论表单选项,我已经将表单直接添加到文章下的同一页面,我想用户评论应该重定向到与文章相同的页面,但我不断收到错误 这是我的密码 看法 网址 形式 {%csrf_令牌%} {%形式的字段为%} {{field.label_tag} {%render_field class=“表单控件有效”rows=“4”%} {%endfor%} 邮递 如果您不希望页面重定向到另一个页面或更新页面,那么在这种情况下应该使用AJAX()。通过将页面更改为该url,您的表单将在操作

我正在开发一个博客,我想在其中添加评论表单选项,我已经将表单直接添加到文章下的同一页面,我想用户评论应该重定向到与文章相同的页面,但我不断收到错误 这是我的密码 看法

网址

形式


{%csrf_令牌%}
{%形式的字段为%}
{{field.label_tag}
{%render_field class=“表单控件有效”rows=“4”%}
{%endfor%}
邮递
如果您不希望页面重定向到另一个页面或更新页面,那么在这种情况下应该使用AJAX()。通过将页面更改为该url,您的表单将在操作中命中url,因此如果不想动态执行此操作,您必须在评论视图中处理重定向和呈现,才能返回到同一页面。

最后,我添加了代码,以便在呈现文章的同一视图中处理评论。这是我的代码

def _article(request, article_id):
try:
    article = Article.objects.get(pk=article_id)
    related_articles = Article.objects.filter(tags=article.tags).exclude(pk=article.pk)[:4]
    context['article'] = article
    context['related_articles'] = related_articles
    context['form'] = CommentForm()
    if request.method == 'POST':
        form = CommentForm(request.POST)
        if form.is_valid():
            comment = form.cleaned_data['comment']
            article.comments_set.create(comment=comment)
    return render(request,'blog/article.html', context)
except Exception as e:
    #write error to file
    return render(request,'blog/404.html')

您遇到了什么错误?这会重定向到动作url“blog:comment”文章中的url。idi希望它重定向到同一页面,然后您应该转到查看功能
views.comment
并将重定向添加到末尾,如
return redirect('blog:_-article')
,这样它会在文章之后返回到文章。
from django.urls import path
from . import views




app_name = 'blog'
urlpatterns = [
path('', views.index, name='index'),
path('<int:article_id>/article', views._article, name='_article'),
path('<int:article_id>/comment', views.comment, name='comment'),
class Comments(models.Model):
comment = models.TextField()
date = models.DateTimeField(default=timezone.now)
article = models.ForeignKey(Article, on_delete=models.CASCADE)

def __str__(self):
    return self.comment
           <form method="post" action="{% url 'blog:comment' article.id %}">
                {% csrf_token %}
                {% for field in form %}
                 {{ field.label_tag }}
                 {% render_field field class="form-control is-valid" rows="4" %}
                {% endfor %}<br>
                <button class="btn btn-success">Post</button>
            </form>
def _article(request, article_id):
try:
    article = Article.objects.get(pk=article_id)
    related_articles = Article.objects.filter(tags=article.tags).exclude(pk=article.pk)[:4]
    context['article'] = article
    context['related_articles'] = related_articles
    context['form'] = CommentForm()
    if request.method == 'POST':
        form = CommentForm(request.POST)
        if form.is_valid():
            comment = form.cleaned_data['comment']
            article.comments_set.create(comment=comment)
    return render(request,'blog/article.html', context)
except Exception as e:
    #write error to file
    return render(request,'blog/404.html')