Django, Form Resubmit на странице обновления? - PullRequest
0 голосов
/ 07 июня 2018

Я разрабатываю приложение 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')

1 Ответ

0 голосов
/ 07 июня 2018

Я думаю, что ваша проблема связана с представлением _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))
  ................
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...