表单提交后无法刷新页面

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

我正在像Django项目这样的博客中构建评论系统。每篇文章末尾都有一个表单(工作正常)。我想这样做,以便在提交表单时,页面刷新并且注释可见。

(在我刚刚链接到博客的首页之前,评论已保存并显示)

我尝试下面的代码,但页面卡在“加载”,然后显示无法访问{{ip_adress}},但仍写入数据库。这是我的views.py

def view_article(request, id):
    try:
        article =get_object_or_404(Article, id=id)
        comments = CommentArticle.objects.filter(article_id=id)
        form = CommentForm(request.POST or None, initial={'article_id': id})
        url = "submit_comment/" + str(id)
        if form.is_valid():
            message = form.cleaned_data['message']
            poster_name = form.cleaned_data['poster_name']
            article_id = id
            return HttpResponseRedirect(reverse('refresh_article'))  

    except Article.DoesNotExist:
        raise Http404

    return render( request, 'blog/view_article.html', locals())

def refresh_article(request, id):
    url = 'view_article' + str(id)
    return HttpResponseRedirect(reverse(url))

有没有人有任何线索?谢谢 !

django django-forms
1个回答
0
投票

你正在进入一个无限循环。您只需要验证帖子上的表单。

def view_article(request, id):
    try:
        article =get_object_or_404(Article, id=id)
        comments = CommentArticle.objects.filter(article_id=id)
        form = CommentForm(request.POST or None, initial={'article_id': id})
        url = "submit_comment/" + str(id)
        if request.method == "POST" and form.is_valid():
            message = form.cleaned_data['message']
            poster_name = form.cleaned_data['poster_name']
            article_id = id
            return HttpResponseRedirect(reverse('view_article', kwargs={'id': id}))  

    except Article.DoesNotExist:
        raise Http404

    return render( request, 'blog/view_article.html', locals())

此外,您无需重定向到另一个视图,重定向回当前视图。您只需重定向回相同的视图即可。

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