python - django.db.utils.IntegrityError:唯一约束失败:auctions_bids.item_id
问题描述
我建立拍卖网站并遇到这个问题:
UNIQUE 约束失败:auctions_bids.item_id
模型.py
from django.contrib.auth.models import AbstractUser
from django.db import models
from django.db.models.deletion import CASCADE
from django.db.models.fields import EmailField, NOT_PROVIDED
class User(AbstractUser):
pass
class Listings(models.Model):
title = models.CharField(max_length=64)
description = models.TextField(max_length=250)
price = models.FloatField()
image_url = models.CharField(max_length=150)
category = models.ForeignKey(Categories, on_delete=models.CASCADE)
listed_by = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return f"{self.title}" #{self.description} {self.price} {self.image_url} {self.category}"
class Bids(models.Model):
item = models.OneToOneField(Listings, on_delete=models.CASCADE)
bid = models.FloatField(blank=True)
user_bid = models.ForeignKey(User, on_delete=models.CASCADE, blank=True)
def __str__(self):
return f"{self.item} {self.bid} {self.user_bid}"
视图.py
def placebid(request, id_product):
if request.method == "POST":
item_list = Listings.objects.get(pk=id_product)
bid = request.POST['bid']
user = request.user
Bids.objects.update_or_create(item=item_list, bid=bid, user_bid=user)
return redirect(reverse("listings", args=(id,)))
当我尝试更新新出价时,会出现上述错误,这是删除旧对象并创建新对象的唯一方法,如果对象存在,我想更新新出价,如果对象不存在则创建使用update_or_create
我认为我在设置 Bids 模型的参数项值时出错了,但我不知道如何修复它们!给我任何建议,非常感谢!!!
解决方案
推荐阅读
- php - mysqli_num_rows 生成无限量的数据
- amazon-cognito - 没有 AccessToken 的 AWS Cognito 中的 GetUserAttributeVerificationCode
- ios - 在 MapView (Swift) 中单击 MKPlacemark 时如何调用函数?
- ruby-on-rails - Couldn't find Category without an ID for Rails Blog
- ios - 快速删除结构数组
- vb.net - vb.net 将文件添加到现有项目
- javascript - 将复选框作为二进制值(“0”表示未选中,“1”表示选中)转换为 json 数据
- python - 程序类被卡住/空闲,并且在 Anaconda/命令行提示中的第一次调用后不执行剩余的调用,但在 Spyder 中工作
- c# - 为什么我的状态机抛出错误:无效转换?
- android - FirebaseUser currentUser 正在显示数组