Код внутри шаблона Django if statement появляется постоянно

У меня есть шаблон Django, который содержит сообщение с переменной, но слова, которых нет в переменной, появляются постоянно. Я думаю, что это как-то связано с условной переменной if closeListing == True. Я явно указываю, когда я хочу, чтобы оно было True, поэтому я не знаю, что происходит

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
            })

listing.html

{% if closeListing == True %}
        <div>{{ closedMessage }}
            <br>
            {{ winner }} has won the auction!
        </div>
    {% endif %}

Если предполагаемое поведение состоит в том, чтобы closeListing = True иметь, когда запрос get_list_or_404(CloseListing, Q(user=request.user) & Q(listings=listing)) вернул некоторый результат или если request.POST.get('close'), то, вероятно, следует изменить здесь:

if has_closed:
    closeListing = False
else: 
    closeListing = True

То...

try:
    # Returned some result
    has_closed = get_list_or_404(CloseListing, Q(user=request.user) & Q(listings=listing))
except:
    has_closed = False

# Modify here...
# You're saying here if any results were returned then set closeListing = True
if has_closed:
    closeListing = True
else: 
    closeListing = False

Я вижу, что у вас уже есть closeListing = True, если request.POST.get('close') не None, что уже хорошо.

Тогда в вашем шаблоне вы можете иметь:

{% if closeListing %}
     <div>
          {{ closedMessage }}
          <be>
          {{ winner }} has won the auction!
     </div>
{% endif %}
Вернуться на верх