def post(self, request, *args, **kwargs): form = None if kwargs.has_key('pk'): try: rs = ReadingSystem.objects.get(id=kwargs['pk']) form = ReadingSystemForm(request.POST, instance = rs) except ReadingSystem.DoesNotExist: return render(request, "404.html", {}) else: form = ReadingSystemForm(request.POST) if form.is_valid(): obj = form.save(commit = False) if hasattr(obj, 'user') == False: obj.user = request.user obj.save() return redirect("/manage/") else: messages.add_message(request, messages.INFO, 'Please complete all required fields.') if kwargs.has_key('pk'): #if we were editing an existing RS return redirect("/rs/{0}/edit/".format(kwargs['pk'])) else: # pass the user's form values in the query string # so they don't have to retype everything clean_data = form.clean() qstr = urlencode(clean_data) return redirect("/rs/new/?{0}".format(qstr))
def get(self, request, *args, **kwargs): form = None title = "" action_url = "" if kwargs.has_key('pk'): try: rs = ReadingSystem.objects.get(id=kwargs['pk']) except: return render(request, "404.html", {}) can_edit = permissions.user_can_edit_reading_system(request.user, rs) if can_edit == False: messages.add_message(request, messages.INFO, 'You do not have permission to edit that reading system.') return redirect("/manage/") form = ReadingSystemForm(instance = rs) action_url = "/rs/{0}/edit/".format(rs.id) title = "Edit Reading System" else: form = ReadingSystemForm() # read the query string for initial values for fieldname in form.fields.keys(): value = request.GET.get(fieldname, '') form.initial[fieldname] = value action_url = "/rs/new/" title = "Add Reading System" return render(request, self.template_name, {'rs_form': form, "title": title, "action_url": action_url})