UnboundLocalError at /products/add_review/2/ локальная переменная 'form' ссылается перед присвоением
Я пытаюсь добавить раздел отзывов на страницу подробного описания товара. Я столкнулся с этой ошибкой и не могу найти причину. Любая помощь будет принята с благодарностью. Я не использовал stackoverflow раньше, поэтому не уверен, что дал достаточно подробную информацию.
Измените ваш файл views.py на
""" View to add a review to the products"""
@login_required
def add_review(request, product_id):
""" Add a review of a product """
product = get_object_or_404(Product, pk=product_id)
form = ReviewForm(request.POST or None) #new
if request.user.is_authenticated:
if request.method == 'POST':
if form.is_valid():
review = form.save(commit=False)
review.product = product
review.review_author = request.user
review.save()
messages.success(
request, 'Successfully added your review!')
return redirect(reverse('product_detail', args=[product.id]))
else:
messages.error(
request, 'Failed to add review. Please ensure the form is valid')
context = {
'form': form
}
return render(request, context)
Вам нужно инициализировать форму, когда метод запроса - get. Код, который вы написали, инициализирует форму только тогда, когда метод запроса - Post.