首页 > 解决方案 > Django UNIQUE 约束

问题描述

Django UNIQUE 约束失败错误

django.db.utils.IntegrityError: UNIQUE constraint failed当我在模型中使用唯一的共同约束时。

我怎样才能正确使用它?当我为同一个发布者输入数据时,相同的版本号相同但副本号不同,我收到了上述错误。这是实现它的正确方法吗?

class Book(models.Model):
    publisher = models.IntegerField()
    issue = models.CharField(max_length=255)

    class Meta:
        unique_together = ("publisher", "issue")

    def __str__(self):
        return "%s-%r" % (self.publisher,self.issue)


class Version(models.Model):
    book = models.ForeignKey(Book, on_delete = models.CASCADE)
    number = models.CharField(max_length=255)
    book_name = models.CharField(max_length=255)
    cover = models.ImageField(null=True)
    description = models.CharField(max_length=255)

    class Meta:
        unique_together = ("book", "number")

    def __str__(self):
        return "%s %s" % (self.number, self.book)




class Copy(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1, on_delete=models.CASCADE)
    version = models.ForeignKey(Version, on_delete = models.CASCADE)
    number = models.IntegerField()
    book_id = models.AutoField(primary_key=True)
    book_size = models.CharField(null=True, blank=True,max_length=255)


    def __str__(self):
        return "%r" % (self.book_id)


    class Meta:
        unique_together = ("version", "number")

标签: djangodjango-modelsunique-constraint

解决方案


推荐阅读