class Customer(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
email = models.EmailField(blank=True)
address = models.TextField()
city = models.CharField(max_length=25, blank=True)
state = models.CharField(max_length=3, choices=STATE_CHOICES, blank=True)
pincode = models.CharField(max_length=8, blank=True)
district = models.CharField(max_length=25, blank=True)
class Meta:
unique_together = ('first_name', 'last_name',)
def save(self, *args, **kwargs):
slug = slugify(self.first_name + ' ' + self.last_name)
super(Customer, self).save(*args, **kwargs)
我在数据库上有一个before insert or update trigger
,它标准化了first_name,last_name,即第一个字母大写,休息为小写。
由于触发器,模型上的save函数会在unique_together上抛出完整性错误。
假设我们有
first_name : 'Abcd'
last_name : 'Defg'
在数据库中。
如果我在管理员中添加
的新记录first_name : 'abcd'
second_name: 'defg'
然后django admin没有捕获到错误。 关于如何处理这个的任何建议。
答案 0 :(得分:0)
你应该这样做:
def save(self, *args, **kwargs):
self.first_name = self.first_name.title()
self.last_name = self.last_name.title()
slug = slugify(self.first_name + ' ' + self.last_name)
super(Customer, self).save(*args, **kwargs)