В настоящее время я работаю над обзором ресторанов на Django, но у меня возникают трудности с применением звездных оценок в моих отзывах.
Вот мой код Django:
detail.html
<form method="POST" class="post-form">
<fieldset class="rating">
<input type="radio" id="star5" name="rating" value="5" />
<label class="full" for="star5" title="Awesome - 5 stars"></label>
<input type="radio" id="star4half" name="rating" value="4half" />
<label class="half" for="star4half" title="Pretty good - 4.5 stars"></label>
<input type="radio" id="star4" name="rating" value="4" />
<label class="full" for="star4" title="Pretty good - 4 stars"></label>
<input type="radio" id="star3half" name="rating" value="3half" />
<label class="half" for="star3half" title="Meh - 3.5 stars"></label>
<input type="radio" id="star3" name="rating" value="3" />
<label class="full" for="star3" title="Meh - 3 stars"></label>
<input type="radio" id="star2half" name="rating" value="2half" />
<label class="half" for="star2half" title="Kinda bad - 2.5 stars"></label>
<input type="radio" id="star2" name="rating" value="2" />
<label class="full" for="star2" title="Kinda bad - 2 stars"></label>
<input type="radio" id="star1half" name="rating" value="1half" />
<label class="half" for="star1half" title="Meh - 1.5 stars"></label>
<input type="radio" id="star1" name="rating" value="1" />
<label class="full" for="star1" title="Sucks big time - 1 star"></label>
<input type="radio" id="starhalf" name="rating" value="half" />
<label class="half" for="starhalf" title="Sucks big time - 0.5 stars"></label>
</fieldset>
{% csrf_token %} {{ form.as_p }}
<button type="submit" class="save btn btn-default" style="width: 100px!important; margin-left: 40%!important; border: none!important; background-color:#ffbf24!important; outline: 0!important; color: white!important;">Send</button>
</form>
{% else %}
<center>
<h6 style="margin-left: 20px; text-align: center;">You must login to add a comment</h6></center>
</center><a href="{% url 'main_app:login' %}" class="btn btn-primary" style=" margin-left:45%!important; border: none!important; background-color:#ffbf24!important; outline: 0!important; color: white!important;">Login</a></center>
{% endif %}
</div>
</div>
</section>
views.py
@login_required
def add_review_to_restraunt(request, pk):
restraunt = get_object_or_404(Restraunt, pk=pk)
if request.method == "POST":
form = ReviewForm(request.POST)
if form.is_valid():
print(form.cleaned_data['rating'])
review = form.save(commit=False)
review.restraunt = restraunt
review.user = request.user
review.save()
return redirect('detail', pk=restraunt.pk)
else:
form = ReviewForm()
return render(request, 'main_app/add_review_to_restraunt.html', {'form': form})
По сути, я стремлюсь создать форму Django, где пользователь может заполнить желаемый рейтинг ресторана. Но когда я пытаюсь это сделать, я терплю неудачу, поскольку звездные рейтинги либо не сохраняются, либо я не могу эффективно получить их значения в моем файле views.py
Django.
Я пытался использовать django-star-rating , но, похоже, не могу получить результат, который я намерен получить, поскольку могу использовать библиотеку только на ранее созданных объектах базы данных, а не на вновь созданных. Я действительно ценю любые отзывы, которые я могу получить, и прошу прощения за что-то непонятное, поскольку я давно не публиковал их и был бы рад уточнить, если это необходимо