def handler404(request): title = Title.objects.get(slug='page-not-found').page page = Page.get_template(title) return HttpResponseNotFound(render_to_string(page))
def handler500(request): title = Title.objects.get(slug='internal-server-error').page page = Page.get_template(title) return HttpResponseServerError(render_to_string(page))
def process_page(page: Page) -> dict: _d_lang = {} # get values by language lang = page.get_languages() title = page.get_title() menu_title = page.get_menu_title() slug = page.get_slug() redirect = page.get_redirect() meta_description = page.get_meta_description() page_title = page.get_page_title() for i in range(1, len(lang)): c_lang = lang[i] _d_lang[c_lang] = {} _d_lang[c_lang]['title'] = page.get_title(c_lang) _d_lang[c_lang]['menu_title'] = page.get_menu_title(c_lang) _d_lang[c_lang]['slug'] = page.get_slug(c_lang) _d_lang[c_lang]['redirect'] = page.get_redirect(c_lang) _d_lang[c_lang]['meta_description'] = page.get_meta_description(c_lang) _d_lang[c_lang]['page_title'] = page.get_page_title(c_lang) page_data = { 'title': title, 'template': page.get_template(), 'languages': page.get_languages(), 'menu_title': menu_title, 'slug': slug, 'created_by': 'shop', 'position': 'first-child', 'apphook': page.application_urls, 'apphook_namespace': page.application_namespace, 'redirect': redirect, 'meta_description': meta_description, 'in_navigation': page.in_navigation, 'soft_root': page.soft_root, 'reverse_id': page.reverse_id, 'published': False, 'login_required': page.login_required, 'page_title': page_title, 'navigation_extenders': page.navigation_extenders, 'is_home': page.is_home, 'additional_languages': _d_lang, 'children': [], 'plugins': {}, } placeholder: Placeholder for placeholder in page.get_placeholders(): if placeholder.get_plugins().count() < 1: continue plugin_tree = generate_plugin_tree(placeholder) page_data['plugins'][placeholder.slot] = plugin_tree # noqa child: Page for child in page.get_child_pages(): # noinspection PyTypeChecker page_data['children'].append(PageUtils.process_page(child)) return page_data