def add_menu_item(request, menu_id): form_class = MenuItem.AdminForm menu = Menu.objects.with_id(menu_id) #if this is a validating request if request.method == 'POST': form = form_class(request.POST) #menu_id = request.POST.get('menu_id', None) if form.is_valid(): menu_item = MenuItem(**form.cleaned_data) #Override form Menu instance menu_item.menu = menu # Save the entry to the DB menu_item.save() return HttpResponseRedirect(reverse('manage-menu-item',args=[menu.id])) #if this is a new request else: data = { 'menu' : menu#display menu name, not id } form = form_class(initial=data) #form = form_class() context = { 'title': 'Add new menu item to {%s} menu' % menu.title, 'form': form, } return render_to_response(_lookup_template('add_menu_item'), context, context_instance=RequestContext(request))
def render(self, context): try: menu_instance = Menu.objects.get(unique_id=self.menu_id) #if there is no menus defined, create one except Menu.DoesNotExist: menu = Menu(title='Main', unique_id='main_menu') menu.save() menu_item = MenuItem(title = 'Home', menu = menu, url = 'http://pixellaz.net', label = 'Home', order = 0, parent = '') menu_item.save() context[self.context_var] = menu_item else: context[self.context_var] = MenuItem.objects(menu=menu_instance) return ''
def manage_menu_item(request, menu_id): menu = Menu.objects.with_id(menu_id) menu_item_list = MenuItem.objects(menu=Menu.objects.with_id(menu_id)) context = { 'title' : 'All %s menu items' %menu.title, 'menu_item_list' : menu_item_list, 'menu' : menu } return render_to_response(_lookup_template('manage_menu_item'), context, context_instance=RequestContext(request))
def create_menu(): default_menu = Menu(title='Main', unique_id='main_menu') default_menu.save() home_menu_item = MenuItem(title = 'Home', menu = default_menu, url = '/', label = 'Home', order = 0, parent = '') home_menu_item.save() blog_menu_item = MenuItem(title = 'Blog', menu = default_menu, url = '/blog/', label = 'Blog', order = 1, parent = '') blog_menu_item.save() return ''