我有以下型号:
class Category(models.Model):
name = models.CharField(max_length=255)
parent = models.ForeignKey('self', related_name='children')
我的问题是我如何阻止模型引用自身(同一个对象)。对象应该只能指向其他类别但不能指向自身('狗可以拥有父母'动物'但是不能拥有父母'狗' )
答案 0 :(得分:1)
您可以覆盖save
方法以抛出异常:
def save(self, *args, **kwargs):
if self.parent and self.parent.name == self.name:
raise ValidationError('You can\'t have yourself as a parent!')
return super(Category, self).save(*args, **kwargs)