如何解决如果块在Django的Django视图中不起作用
def listingpage(request,title):
listings = Auctionlisting.objects.get(title=title)
if request.method == "POST":
form = Bidform(request.POST)
if form.is_valid():
bidmade = request.POST.get('bidmade')
user = request.POST.get('username')
username = User.objects.get(username=user)
bid = Bid(user=username,bidmade=bidmade,bidobject=listings)
if Bid.user != username and Bid.bidobject != listings:
bid.save()
return render(request,"auctions/listingpage.html",{
"listings":listings,"bidform":form,"message":"Your bid has been added in the auction..."
})
else:
return render(request,"auctions/error.html")
else:
form = Bidform()
return render(request,{
"listings":listings,"bidform":form
})
谁能告诉我这段代码有什么问题。如果代码不起作用,即使出价数据库中已经存在用户名和列表,它也会继续添加出价。我正在使用此代码,以防止通过单个用户名多次竞标对象。
解决方法
所以您只想在用户尚未为指定列表创建出价的情况下创建新的Bid
,对吗?
bid,created = Bid.objects.get_or_create(user=username,bidobject=listings,defaults={"bidmade" : bidmade})
if created:
return render(...)
else:
#oops,that user has already bid on the listing,take appropriate action
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。