fix: base 对循环引用抛出异常

This commit is contained in:
caoqianming 2024-06-07 09:49:17 +08:00
parent 7bbc9d7fb1
commit 6b181c8890
1 changed files with 7 additions and 1 deletions

View File

@ -62,13 +62,19 @@ class ParentModel(models.Model):
def init_parent_link(self):
link = []
if self.parent is not None:
if self.parent == self:
raise Exception(f'{self.__class__.__name__}-{self.id}-存在循环引用')
link = [self.parent.id] # 一级
if self.parent.parent is not None: # 二级
if self.parent.parent == self:
raise Exception(f'{self.__class__.__name__}-{self.id}-存在循环引用')
link.insert(0, self.parent.parent.id)
if self.parent.parent.parent is not None: # 三级
if self.parent.parent.parent == self:
raise Exception(f'{self.__class__.__name__}-{self.id}-存在循环引用')
link.insert(0, self.parent.parent.parent.id)
if self.parent.parent.parent.parent is not None:
raise Exception('最多支持四级')
raise Exception(f'{self.__class__.__name__}-{self.id}-最多支持四级')
return link
def handle_parent(self, is_create:bool):