【发布时间】:2023-02-20 22:18:17
【问题描述】:
我现在正在制作拍卖网站,当我尝试通过单击按钮将我的布尔值设置为 True/False 时,出现此错误:
NOT NULL 约束失败:auctions_bid.bid_offer
它在我将
listing.save()添加到 POST 按钮后显示这是代码:
Views:if request.method == "POST": # listing.owner = bid_owner # listing.price = bid_offer listing.isActive = False listing.save()这是我出错的地方
if request.method == "POST": #BID FORM new_bid = request.POST.get("new_bid") f = Bid(bid_offer = new_bid, listing_offer = listing, bid_owner = request.user) f.save() return HttpResponseRedirect(f'./{itemID}')
Form本身:<form action = "{% url 'auctions:listing' itemID %}" method = "post"> {% csrf_token %} {%if user.id == owner.id%} <input type = "submit" value = "Accept" id = "accept_bid"> {% endif %} </form>
Bid model:class Bid(models.Model): bid_offer = models.IntegerField() listing_offer = models.ForeignKey(Listing, on_delete = models.CASCADE, related_name = "listings", null = True) bid_owner= models.ForeignKey(User, on_delete = models.CASCADE)
Listing模特:class Listing(models.Model): title = models.CharField(max_length= 64) description = models.CharField(max_length= 128) img = models.ImageField(upload_to = 'auctions/media/images') isActive = models.BooleanField(default= True, blank=True) owner = models.ForeignKey(User, on_delete = models.CASCADE, related_name="user") categories = models.ForeignKey(Category, on_delete = models.CASCADE, blank= True, null = True, related_name = "category", default = "None") price = models.IntegerField(default = 0)当我删除 listing.save() 时一切正常,但布尔值不会改变
【问题讨论】:
-
确保你在
new_bid = request.POST.get("new_bid")中有new_bid。 -
class bidForm(forms.Form): new_bid = forms.IntegerField(label = "Your offer") -
我的意思是确保你在你的帖子数据中传递它。