无法使用 Django 遍历 QuerySet 结果

Not able to iterate through QuerySet results with Django

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

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

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

谢谢!

下面是我的相关代码:

views.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")

Models.py:

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

post.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>

你试过这个代码吗(没有.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 循环的情况下打印查询?我是说

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

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

for queries in query:
    print(queries.itemID)

而不是

for queries in query:
    print(query.itemID)