无法使用 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)
我是 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)