Как получить доступ к отправленному значению формы django?
Я пытаюсь сделать сайт электронной коммерции, который позволяет пользователю размещать предложения через форму. Новая ставка, которую размещает пользователь, должна быть больше, чем цена объявления и всех других ставок. Мне нужна помощь в получении доступа к значению, которое вводит пользователь, чтобы проверить, соответствует ли оно ранее заявленным требованиям.
views.py
def listing(request, id):
#gets listing
listing = Listings.objects.get(id=id)
#code for forms
listing_price = listing.bid
comment_obj = Comments.objects.filter(listing=listing)
form = CommentForm()
bid_form = BidsForm()
if request.method == "POST":
form = CommentForm(request.POST)
bid_form = BidsForm(request.POST)
new_bid = bid_form.cleaned_data.get('newBid')
if form.is_valid():
comment = form.save(commit=False)
comment.listing = listing
comment.user = request.user
comment.save()
if (bid_form.is_valid()) and (new_bid >= listing_price):
bid = form.save(commit=False)
bid.listing = listing
bid.user = request.user
bid.save()
else:
return render(request, "auctions/listing.html",{
"auction_listing": listing,
"form": form,
"comments": comment_obj,
"bidForm": bid_form
})
return render(request, "auctions/listing.html",{
"auction_listing": listing,
"form": form,
"comments": comment_obj,
"bidForm": bid_form
})
(Есть две формы, одна для комментариев, другая для предложений)
html
<!--bid form-->
<form action = "{% url 'listing' auction_listing.id %}" method = "POST" name = "newBid">
{% csrf_token %}
{{ bidForm }}
<input type = "submit" value = "Place Bid">
</form>
Я смог получить доступ к значению цены листинга, добавив эту строку кода:
new_bid = bid_form.cleaned_data.get("bid") после if bid_form.is_valid(): и создал новый оператор if для проверки того, что новое_предложение больше, чем цена листинга. Я также удалил if request.method == "POST":, который вызывал ошибку.