Django 错误 NoReverseMatch at /new_bid/1 Reverse for 'addwatchlist' with arguments '('',)' not found

如何解决Django 错误 NoReverseMatch at /new_bid/1 Reverse for 'addwatchlist' with arguments '('',)' not found

我对 Django 有点陌生。我遇到了一个我觉得很奇怪的错误。 该站点允许用户对某个项目进行出价(输入数量),类似于 ebay。 当我输入号码时,出现错误noreverseMatch at /new_bid/1 未找到带有参数 '('',)' 的 'addwatchlist' 反转。尝试了 1 个模式:['addwatchlist/(?P[0-9]+)$']

这很奇怪,因为代码区域(views.py 中的 new_bid)与 addwatchlist 无关。 views.py 中的 addwatchlist 将此特定项目添加到该用户的列表中。这只是为了让用户可以跟踪他们想要观看的网站上的任何项目。

监视列表功能完全正常 - 我可以将一个项目添加到我的监视列表中,这很好。 我不知道为什么这个函数会与我的另一个函数 new_bid 进行交互,后者会为该项目添加出价。我知道这个错误通常与 url 或 html 模板调用 url 的方式有关,但我真的不知道他们两个为什么交互。是因为他们都使用 "id": listingid 吗?任何帮助表示赞赏!

urls.py 用于相关网址:

urlpatterns = [

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

views.py 用于监视列表:

def addwatchlist(request,listingid):
    if request.user.username:
        entry = Watchlist()
        entry.user = request.user.username
        entry.listingid = listingid
        entry.save()
        return redirect('listingpage',id=listingid)
    else:
        return redirect('index')

views.py 用于添加您的出价:

def new_bid(request,listingid):
    if request.method == 'POST':
        auction_to_add = Listings.objects.get(id=listingid)
        total_bid = request.POST.get("total_bid")
        bid = Bid.objects.create(user=request.user,listingid=auction_to_add,bid=total_bid)
        auction_to_add.bids.add(bid)
        auction_to_add.last_bid = bid
        auction_to_add.save()
        return render(request,"auctions/listing.html",{
            "id": listingid,})
    else:
        return render(request,})

用于出价的 html 文件的一部分:

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

用于添加到监视列表的 html 文件的一部分:

<a href="{% url 'addwatchlist' product.id %}"><button class="btn btn-primary">Add to Watchlist</button></a>

这是 views.py 的一部分,它将显示站点上特定项目的页面本身:

def listingpage(request,id):
    comments = Comments.objects.filter(listingid=id)
    item = Listings.objects.get(id=id)
    return render(request,{
        "id": id,"comments": comments,"product": item,})

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?