Функция для генерации полной ссылки через рекурсию

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
def collect_url(self, link_parts = []):
if self.parent != None:
link_parts.append(self.parent.get_relative_url(False))
return link_parts
def get_relative_url(self, append_base = True):
link = ''
if append_base:
link = self.module.base_url
link_parts = self.collect_url()
if str:
link += '/'.join(link_parts)
return '%s/%s' % (link, self.url)