. توی کد زیر بعد از ثبت کردن فرم اگر صفحه را رفرش کنیم همان فرم دوباره ثبت میشود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
if request.POST and 'comment_form_submit' in request.POST: feedback_comment_form = FeedbackCommentForm(request.POST) if feedback_comment_form.is_valid(): body = feedback_comment_form.cleaned_data['body'] DocumentComment.objects.create( document=d, user=request.user, body=body, comment_datetime=datetime.datetime.now() ) context['comment_list'] = DocumentComment.objects.filter(document=d) DocumentLogger.log(request, d, 'ثبت کامنت ') messages.success(request, 'کامنت ثبت شد') return render(request, "man/documents/document-detail.html", context) |
مشکل در فروم جنگو این جوری توضیح داده شده است:

یعنی بعد از POST موفق باید فرم را redirect کنیم که با این کار صفحه جدید با GET فراخوانی میشود در نتیجه اگر رفرش کنیم باز هم در خواست GET ارسال میگردد. یعنی کد را به شکل زیر تغییر میدهیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
if request.POST and 'comment_form_submit' in request.POST: feedback_comment_form = FeedbackCommentForm(request.POST) if feedback_comment_form.is_valid(): body = feedback_comment_form.cleaned_data['body'] DocumentComment.objects.create( document=d, user=request.user, body=body, comment_datetime=datetime.datetime.now() ) context['comment_list'] = DocumentComment.objects.filter(document=d) DocumentLogger.log(request, d, 'ثبت کامنت ') messages.success(request, 'کامنت ثبت شد') url = reverse('man:management_documents_document_detail', args=[doc_id]) return HttpResponseRedirect(url) |