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)