我有一个看起来像这样的 Django 模型:
class Categories(models.Model):
"""
Model for storing the categories
"""
name = models.CharField(max_length=8)
keywords = models.TextField()
spamwords = models.TextField()
translations = models.TextField()
def save(self, force_insert=False, force_update=False):
"""
Custom save method that converts the name to uppercase
"""
self.name = self.name.upper()
super(Categories, self).save(force_insert, force_update)
每当插入或更新数据时。我想检查是否不存在同名记录。这是一个独特的约束,我想通过代码而不是数据库来实现。此表中的数据量很小,因此性能影响不是问题。如果存在违反约束的情况,我想引发 Django 的内置约束异常之一,而不是创建自定义异常。
谁能教我最好/最快的方法来完成这个?
谢谢。
最佳答案
在您的模型定义中 you can tell Django that 'name' should be unique :
name = models.CharField(max_length=8, unique=True)
如果您尝试保存两个具有相同名称的记录,将引发 django.db.IntegrityError
。
关于python - 基于代码的唯一约束 Django 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3194650/