Двойное сообщение после обновления django

После того, как я разместил свой комментарий и решил обновить страницу, он добавляет тот же комментарий снова и снова при каждом обновлении, как я могу остановить это?

Код для просмотра комментариев находится в самом низу в файле template.html. А код обзора находится под "def product_detail" в файле views.py

Надеюсь, кто-нибудь может дать мне несколько советов, чтобы при обновлении он не делал еще один пост.

шаблон

views.py

Вам следует реализовать архитектурный паттерн Post/Redirect/Get [wiki], и таким образом вернуть перенаправление так, чтобы браузер сделал GET запрос следующим, и таким образом предотвратить выполнение еще одного POST запроса при обновлении страницы:

def product_detail(request, product_id):
    product = get_object_or_404(Product, pk=product_id)
    if request.method == 'POST':
        rating = request.POST.get('rating', 3)
        content = request.POST.get('content', '')
        Review.objects.create(
            product=product,
            rating=rating,
            content=content,
            created_by=request.user
        )
        # redirect to the same page 🖟
        return redirect('product_detail', product_id=product_id)

    reviews = Review.objects.filter(product=product)
    context = {
        'product': product,
        'reviews': reviews
    }
    return render(request, 'products/product_detail.html', context)
Вернуться на верх