Почему оператор >= в python работает как > в операторе if?
У меня есть оператор if, который проверяет, больше или равно ли значение, отправленное в форме Django, чем listing_price
(начальная цена товара) и больше ли оно всех остальных предложений перед сохранением. Вторая часть условия работает, но форма будет сохранена только в том случае, если отправленное значение больше listing_price
, а не равно. Вместо этого оператор greater than or equal to работает как оператор greater than. Что может быть причиной проблемы и как ее решить?
views.py
def listing(request, id):
#gets listing
listing = get_object_or_404(Listings.objects, pk=id)
listing_price = listing.bid
bid_form = BidsForm()
#code for the bid form
bid_obj = Bids.objects.filter(listing=listing)
other_bids = bid_obj.all()
max_bid =0
for bid in other_bids:
if bid.bid > max_bid:
max_bid = bid.bid
if request.method == "POST":
bid_form = BidsForm(request.POST)
#checks if bid form is valid
if bid_form.is_valid():
new_bid = float(bid_form.cleaned_data.get("bid"))
if (new_bid >= listing_price) and (new_bid > max_bid):
bid = 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": comment_form,
"comments": comment_obj,
"bidForm": bid_form,
"bids": bid_obj,
"message": "Your bid needs to be equal or greater than the listing price and greater than any other bids."
})
else:
return redirect('listing', id=id)