如何解决如何将多个QuerySet值传递到filter
我有3种模型,一种是拍卖的,第二种是关注列表的,第三种是用户的
class Auctions(models.Model):
lot = models.CharField(max_length=64)
owner = models.CharField(max_length=64)
url = models.CharField(max_length=256,blank = True)
startBid = models.IntegerField()
description = models.CharField(max_length=64)
category = models.CharField(max_length=64,blank = True)
class User(AbstractUser):
pass
class Watchlist(models.Model):
user = models.CharField(max_length=64)
watchlist = models.CharField(max_length=64,blank = True)
观看次数:
def addToWatchlist(request,id):
print(id,"ID")
user = request.user
watchlist = Watchlist.objects.filter(user = user,watchlist = id)
data = list(watchlist)
if data == []:
createWatchList = Watchlist(
user = request.user,watchlist = id
)
createWatchList.save()
else:
watchlist.delete()
return redirect('listing',id=id)
def watchlist(request):
id = Watchlist.objects.filter(user = request.user)
auctions = Auctions.objects.filter(id = id)
return render(request,"auctions/watchlist.html",{
"auctions": auctions
})
我收到一个错误“ ValueError:用于精确查找的QuerySet值必须限制为使用切片的一个结果。” 有人可以解释如何将多个QuerySet值传递给filter() 结果,我需要所有拍卖,这与监视列表匹配 谢谢!
解决方法
尝试一下:
watchlist_id = Watchlist.objects.filter(user = request.user).values('id')
auctions = Auctions.objects.filter(id__in = watchlist_id).all()
在这里,我们首先过滤watchlist_id,然后在拍卖表中包含(id__in
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。