Невозможно ввести звездный рейтинг для формы обзора ресторана django. - PullRequest
1 голос
/ 15 марта 2019

В настоящее время я работаю над обзором ресторанов на 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 , но, похоже, не могу получить результат, который я намерен получить, поскольку могу использовать библиотеку только на ранее созданных объектах базы данных, а не на вновь созданных. Я действительно ценю любые отзывы, которые я могу получить, и прошу прощения за что-то непонятное, поскольку я давно не публиковал их и был бы рад уточнить, если это необходимо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...