'>' не поддерживается между экземплярами 'decimal.Decimal' и 'QuerySet' Как преобразовать QuerySet в десятичную дробь или получить доступ к значениям в нем?
Я пытаюсь сделать сайт электронной коммерции (CS50 Project 2), который позволяет пользователю сделать ставку, если его ставка больше или равна цене листинга и больше, чем все остальные ставки. Я смог проверить, превышает ли ставка цену листинга, но мне нужна помощь в проверке, превышает ли она другие ставки.
Я получаю сообщение об ошибке. '>' not supported between instances of 'decimal.Decimal' and 'QuerySet'. Я знаю, что это означает, что я сравниваю два разных типа значений, но как мне изменить QuerySet на десятичный или получить прямой доступ к значениям внутри QuerySet?
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)
comment_form = CommentForm()
bid_form = BidsForm()
comment_form = CommentForm(request.POST)
bid_form = BidsForm(request.POST)
bid_obj = Bids.objects.filter(listing=listing)
other_bids = bid_obj.all()
if comment_form.is_valid():
comment = comment_form.save(commit=False)
comment.listing = listing
comment.user = request.user
comment.save()
if bid_form.is_valid():
new_bid = bid_form.cleaned_data.get("bid")
if (new_bid >= listing_price) and (new_bid > other_bids):
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
})
else:
return render(request, "auctions/listing.html",{
"auction_listing": listing,
"form": comment_form,
"comments": comment_obj,
"bidForm": bid_form,
"bids": bid_obj
})
return render(request, "auctions/listing.html",{
"auction_listing": listing,
"form": comment_form,
"comments": comment_obj,
"bidForm": bid_form,
"bids": bid_obj
})
(Есть две формы, одна для комментариев, другая для предложений)
Эта строка other_bids = bid_obj.all() вызывает проблему, но я не знаю, как ее исправить.
Спасибо за помощь!
QuerySet является итерабельным
for bid in other_bids:
# hint: what's max value in other_bids and use that val later
Редактирование 1: Нахождение максимума
max_bid =0
for bid in other_bids:
if bid.listing > max_bid:
max_bid = bid.listing