繁体   English   中英

无法使用 Django 遍历 QuerySet 结果

[英]Not able to iterate through QuerySet results with Django

我是 Django 的新手,我遇到了 QuerySets 问题。 我正在试验并尝试使用 Bid.objects.filter 方法进入一个字段。 如果我使用任何过滤器(即使我输入了像 itemID = "Monkey517" 这样的完全匹配项),它也会不断出现。 但是,如果我进行“全部”搜索,它会出现大量我不知道如何遍历的查询集。

我正在使用我在网上找到的示例,但我收到错误消息“'QuerySet' object 没有属性'itemID'”或'QuerySet' object 没有属性'highestBidder'

我不确定如何获取更大查询集中的每个查询集。 这让我有点困惑。 谁能帮我解决这个问题?

谢谢!

下面是我的相关代码:

意见.py:

   def closeAuction(request):
    username = request.POST.get("username")
    itemID = request.POST.get("itemID")
    query = Bid.objects.all()
    for queries in query.iterator():
        print(query.itemID)
    return render(request, "auctions/index.html")

模型.py:

class Bid(models.Model):
itemID = models.CharField(max_length=64)
newBid = models.IntegerField()
highestBidder = models.CharField(max_length=64)

邮政.html:

{% if user.is_authenticated %}
       <form name="closeAuction"
             action="/closeAuction"
          method="post" >
            {% csrf_token %}
        <input autofocus class="form-control" type="hidden" name="username" value={{user.username}}>
        <input autofocus class="form-control" type="hidden" name="itemID" value={{p.title}}{{p.price}}>
        <input class="btn btn-primary" type="submit" value="Close Auction">
    {% endif %}
       </form>

哦,我明白了:您正在打印 objects query而不是queries 所以你可能会这样做:

for queries in query:
    print(queries.itemID)

代替

for queries in query:
    print(query.itemID)

你试过这段代码吗(没有.iterator()

def closeAuction(request):
username = request.POST.get("username")
itemID = request.POST.get("itemID")
query = Bid.objects.all()
for queries in query:
    print(query.itemID)
return render(request, "auctions/index.html")

您是否尝试过在没有 for 循环的情况下打印查询? 我是说

query = Bid.objects.all() 打印(query.filter(itemID=itemID))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM