gpt4 book ai didi

python - Django - 唯一约束失败

转载 作者:行者123 更新时间:2023-12-01 03:12:08 26 4
gpt4 key购买 nike

即使我查看其他遇到此问题的人,也无法解决我的问题。

如何创建带有外键的id?我该如何使用该 id?

这是我的代码:

class Receipt(models.Model):
amount = models.DecimalField(max_digits=5, decimal_places=2, primary_key=True)
vat = models.DecimalField(max_digits=5, decimal_places=2)
total_amount = models.IntegerField(default=0)


class ReceiptItem(models.Model):
receipt_id = models.ForeignKey('Receipt', on_delete=models.CASCADE)
product_id = models.ForeignKey('Product', on_delete=models.CASCADE)
amount = models.DecimalField(max_digits=5, decimal_places=2)
vat = models.DecimalField(max_digits=5, decimal_places=2)
vat_rate = models.DecimalField(max_digits=5, decimal_places=2)
sub_total = models.IntegerField(default=0)
name = models.CharField(max_length=200)

class Product(models.Model):
name = models.CharField(max_length=5)
vat_rate = models.DecimalField(max_digits=5, decimal_places=2)
amount = models.IntegerField(default=0, primary_key=True)

这是我收到的错误:

django.db.utils.IntegrityError: UNIQUE constraint failed: migros_product.amount

最佳答案

class Product(models.Model):
name = models.CharField(max_length=5)
vat_rate = models.DecimalField(max_digits=5, decimal_places=2)
amount = models.IntegerField(default=0, primary_key=True)

金额设置为主键,这意味着数据库只允许每个金额值有 1 条记录

但是,您还设置了默认值 0,因此只要未提供金额值,您的数据库就只能创建 1 条金额 = 0 的记录.

你必须决定你想要什么。如果金额唯一性很重要,则删除 default=0 并放置 null=True、blank=True,例如。

关于python - Django - 唯一约束失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42796024/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com