Ошибка Django — обратный для ‘new_bid’ с аргументами ‘(«,)’ не найден. попробовано 1 шаблон (ы):

#python #django #django-models #django-views #django-templates

#питон #джанго #django-модели #django-просмотры #django-templates

Вопрос:

Я несколько новичок в Django и создаю для пользователей способ «делать ставки» на товары, аналогичный ebay. Я получаю сообщение об ошибке: обратный для ‘new_bid’ с аргументами ‘(«,)’ не найден. попробовал 1 шаблон (ы): [‘new_bid/(?P[0-9] )$’]

Обратная трассировка доступна в течение одного дня на этом сайте (у меня возникли проблемы с копированием и вставкой ее здесь). https://dpaste.com/EYMGRBCEN

Я знаю, что кое-что перепутал, в частности, конец views.py в запросе на возврат рендеринга, но я не уверен, что мне там нужно. Я знаю в html {% url ‘new_bid’ i.id %} тоже неверно, но я изо всех сил пытаюсь понять, что должно быть и здесь. Любая помощь приветствуется, так как я хотел бы узнать больше.

views.py

 def new_bid(request, listingid):
    current_bid = Listings.objects.get(id=listingid)
    current_bid = current_bid.starting_bid
    if request.method == "POST":
        user_bid = int(request.POST.get("bid"))
        if user_bid > current_bid:
            listing_items = Listings.objects.get(id=listingid)
            listing_items.starting_bid = user_bid
            listing_items.save()
            try:
                if Bid.objects.filter(id=listingid):
                    bidrow = Bid.objects.filter(id=listingid)
                    bidrow.delete()
                bidtable = Bid()
                bidtable.user = request.user.username
                bidtable.title = listing_items.title
                bidtable.listingid = listingid
                bidtable.bid = user_bid
                bidtable.save()

            except:
                bidtable = Bid()
                bidtable.user = request.user.username
                bidtable.title = listing_items.title
                bidtable.listingid = listingid
                bidtable.bid = user_bid
                bidtable.save()

            Bid.objects.filter(id=listingid)
            return render(request, "auctions/listing.html", {
                "i": "id"
            })
        else:
            response = redirect('listingpage', id=listingid)
            response.set_cookie('error', 'Bid should be greater than current price', max_age=3)
            return response
    else:
        return redirect('index')
 

URL-адреса в urls.py

     path("listings/<int:id>", views.listingpage, name="listingpage"),

    path("new_bid/<int:listingid>", views.new_bid, name="new_bid"),
 

Соответствующий html:

         <p class="lead" align="justify"><strong>Place your Bid : </strong></p>
        <form action="{% url 'new_bid' i.id %}" method="POST">
            {% csrf_token %}
            <div class="form-group">
                <input class="form-control" type="text" name="newbid" placeholder="Your Bid">


  
{% endblock %}
 

Комментарии:

1. Можете ли вы опубликовать полную трассировку стека ошибок? Может быть, у вас есть проблема в другом шаблоне

2. Какое i.id здесь удостоверение личности? Кажется i.id , он возвращает пустое / нулевое значение

3. @LinhNguyen dpaste.com/EYMGRBCEN — вот обратная связь. Я знаю, что там написано, что проблема в моем HTML-файле layout, но я не думал, что это действительно так, потому что я видел эту же ошибку некоторое время назад для другого проекта, и там говорилось, что проблема была в layout, но в итоге это оказалось не так. В любом случае, я убедился, что мой пользователь действительно вошел в систему. И мой пользователь вошел в систему. Так что я на самом деле не уверен, почему он выдает эту ошибку.