def add_page(request, category_name_url): context = RequestContext(request) category_name = category_name_url.replace(' ', '_') context_dict = {'category_name': category_name} category_name_ref = category_name.replace('_',' ') try: category = Category.objects.get(name=category_name_ref) context_dict['category'] = category except Category.DoesNotExist: return render_to_response('bookmark/error.html', {}, context) if request.method == 'POST': page = PageForm(request.POST) if page.is_valid(): savedstate = page.save(commit=False) savedstate.category = Category.objects.get(name=category_name_url) savedstate.views = 0 savedstate.save() page.save_m2m() return index(request) else: print page.errors else: page = PageForm() '''if page.is_valid(): print("SHI") savedstate = page.save(commit=False) savedstate.category = Category.objects.get(name=category_name_url) savedstate.views = 0 savedstate.save() page.save_m2m() return index(request) else: print page.errors''' context_dict['page'] = page return render_to_response('bookmark/add_page.html', context_dict, context)
def add_page(request, category_name_url): context = RequestContext(request) category_name = decode_url(category_name_url) category_name_ref = category_name.replace('_',' ') if request.method == 'POST': form = PageForm(request.POST) if form.is_valid(): # This time we cannot commit straight away. # Not all fields are automatically populated! page = form.save(commit=False) # Retrieve the associated Category object so we can add it. # Wrap the code in a try block - check if the category actually exists! try: cat = Category.objects.get(name=category_name_ref) page.category = cat except Category.DoesNotExist: # If we get here, the category does not exist. # Go back and render the add category form as a way of saying the category does not exist. return render_to_response('bookmark/add_category.html', {}, context) # Also, create a default value for the number of views. page.views = 0 # With this, we can then save our new model instance. page.save() form.save_m2m() # Now that the page is saved, display the category instead. return category(request) else: print form.errors else: form = PageForm() return render_to_response( 'bookmark/add_page.html', {'category_name_url': category_name_url, 'category_name': category_name, 'form': form}, context)