首页 > 解决方案 > Django,刷新页面上的表单重新提交?

问题描述

我正在开发一个 django 应用程序,当我提交表单时,它可以正常工作,但是当我刷新页面时,表单再次将数据重新提交到数据库,我已经尝试了一切我可以但似乎无法让它正常工作

我的观点

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['comments'] = article.comments_set.all().order_by('-date')[:4]
    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)
    else:
        form = CommentForm()        
        context['form'] = form      
    return render(request,'blog/article.html', context)
except Exception as e:
    #write error to file
    return render(request,'blog/404.html')

标签: djangoforms

解决方案


我认为您的问题与 _article 视图有关。尝试将代码更改为此

def _article(request, article_id):
  if request.method == "POST":
    form = CommentForm(request.POST)
    if form.is_valid():
      comment = form.cleaned_data['comment']
      article.comments_set.create(comment=comment)
      return HttpResponseRedirect("</your/url>")
  return render(request,'blog/article.html',context))
  ................

推荐阅读