示例:
class Author(models.Model):
first_name = models.CharField()
last_name = models.CharField()
def _get_full_name(self):
return '{0} {1}'.format(self.first_name, self.last_name)
full_name = property(_get_full_name)
对全名设置唯一约束的推荐方法是什么?考虑覆盖保存,但也许有更好的解决方案?
答案 0 :(得分:4)
查看Meta类选项unique_together
你可以这样做:
class Author(models.Model):
first_name = models.CharField()
last_name = models.CharField()
def _get_full_name(self):
return '{0} {1}'.format(self.first_name, self.last_name)
full_name = property(_get_full_name)
class Meta:
unique_together = ("first_name", "last_name")
优点是在数据库级别使用适当的UNIQUE SQL语句强制执行此操作。
答案 1 :(得分:2)
unique_together =(“first_name”,“last_name”)