def menu_edit(request):
    current_site = get_current_site(request)
    try:
        menu = Menu.objects.get(site=current_site).json_tree
    except Menu.DoesNotExist:
        menu = '[{"title": "", "description": "", "url": ""}]'
        
    if request.method =='POST':
        try:
            Menu.objects.get(site=current_site).delete()
        except Menu.DoesNotExist:
            pass
        menu = striptags(request.POST.get('menudata'))
        menu_obj = Menu(json_tree=menu, site_id=current_site.id)
        menu_obj.save()
        request.session['success'] = True
        cache.set('sitemenus_' + current_site.domain, render_menu(current_site), sys.maxint)
        
        return redirect('sitemenus_menu_edit')

    success = request.session.get('success')
    if success:
        del request.session['success']
    
    return render(request, 'sitemenus/sitemenus_edit.html', { 'menu': menu, 'success': success })
 def render(self, context):
     current_site = Site.objects.get_current()
     cached_menu = cache.get('sitemenus_' + current_site.domain)
     
     if cached_menu:
         return cached_menu
     
     rendered_menu = render_menu(current_site)
     cache.set('sitemenus_' + current_site.domain, rendered_menu, sys.maxint)
     return rendered_menu