1
假设我有以下型号:验证一个一对多model.parent不言
class Queue(models.Model):
name = models.CharField(max_length=50, unique=False)
parent = models.ForeignKey('self', blank=True, null=True,
related_name='children')
什么是确保队列是从来没有它自己的父的最佳方式?我现在正在做的是检查的事情模型的clean()
方法:
class Queue(models.Model):
name = models.CharField(max_length=50, unique=False)
parent = models.ForeignKey('self', blank=True, null=True,
related_name='children')
def clean(self):
if self.id is not None:
if self.id == self.parent_id:
raise ValidationError('Queues cannot be their own parent.')
那是最好的/正确的方法做事情?
太棒了,谢谢@solarissmoke。所以'clean()'是正确的方法,我会在每次手动处理事物时都要注意调用'full_clean()'。 –
是的,这应该确保您的约束始终得到执行。 – solarissmoke