Двойное сообщение после обновления 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)