Как заставить переменную a в условном шаблоне Django отображаться каждый раз, когда это необходимо?
У меня есть шаблон Django с текстом, который окружает переменную. Я хочу, чтобы и текст, и переменная отображались, когда объявление находится в модели CloseListing или если произошло request.POST.get('close')
. В настоящее время переменные отображаются, когда происходит request.POST.get('close')
, но исчезают, если перейти на другую страницу веб-приложения и затем вернуться. Текст вокруг них всегда виден. Я думаю, что проблема в моей логике, но не знаю, как это исправить. Кто-нибудь знает, как это исправить?
views.py
@login_required(login_url='login')
def listing(request, id):
#gets listing
listing = get_object_or_404(Listings.objects, pk=id)
sellar = listing.user
#close listing code
if sellar == request.user:
closeListingButton = True
else:
closeListingButton = False
closeListing = ''
try:
has_closed = get_list_or_404(CloseListing, Q(user=request.user) & Q(listings=listing))
except:
has_closed = False
if has_closed:
closeListing = False
else:
closeListing = True
if request.method == "POST":
#close listing code
if request.POST.get('close'):
CloseListing.objects.create(user=request.user, listings=listing)
closeListing = True
closeListingButton = False
add_or_remove_watchlist = True
winning_bid = Bids.objects.aggregate(Max('bid'))
winning_bid = Bids.objects.latest('bid')
winner = winning_bid.user
return render(request, "auctions/listing.html",{
"auction_listing": listing,
"comments": comment_obj,
"bids": bid_obj,
"closeListingButton": closeListingButton,
"closeListing": closeListing,
"closedMessage": "This listing is closed.",
"winner": winner
})
return render(request, "auctions/listing.html",{
"auction_listing": listing,
"closeListingButton": closeListingButton,
"closeListing": closeListing
})
html
{% if closeListing %}
<div style = "color: red">{{ closedMessage }}</div>
<br>
<div style = "color: green">{{ winner }} has won the auction!</div>
{% endif %}