def create_element(request, project_id, page_id): page = get_object_or_404(Page, pk=page_id) if request.method == 'POST': form = ElementForm(request.POST) if form.is_valid(): # All validation rules pass new_element = form.save(commit=False) new_element.page = page new_element.created_by = request.user new_element.updated_by = request.user if form.is_valid(): new_element.save() return HttpResponseRedirect("/pages/%s/%s/elements/" % (project_id, page_id)) else: form = ElementForm() return render(request, 'elements/create_element_form.html', { 'form': form, 'project_id': project_id, 'page_id': page_id, })
def edit_element(request, project_id, page_id ,element_id): page = get_object_or_404(Page,pk=page_id) element = get_object_or_404(Element,pk=element_id) old_value = element.created_by if request.method == 'POST': form = ElementForm(request.POST,instance=element) if form.is_valid(): # All validation rules pass current_element = form.save(commit=False) current_element.page = page current_element.created_by = old_value current_element.updated_by = request.user if form.is_valid(): current_element.save() return HttpResponseRedirect('/pages/%s/%s/elements/' % (project_id, page_id)) # Redirect after POST else: form = ElementForm(instance=element) # An bound form return render(request, 'elements/edit_element_form.html', { 'form': form, 'page': page, 'element': element, 'project_id': project_id, })