def box(context, label, show_edit=True, *args, **kwargs): request = context["request"] can_edit = load_can_edit()(request, *args, **kwargs) try: box = Box.objects.get(label=label) except Box.DoesNotExist: box = None if can_edit and show_edit: form = BoxForm(instance=box, prefix=label) form_action = reverse("box_edit", args=[label]) else: form = None form_action = None return { "request": request, "label": label, "box": box, "form": form, "form_action": form_action, }
def box_edit(request, label): if not load_can_edit()(request, **get_auth_vars(request)): return HttpResponseForbidden() next = request.GET.get("next") try: box = Box.objects.get(label=label) except Box.DoesNotExist: box = None form = BoxForm(request.POST, instance=box, prefix=label) if form.is_valid(): if box is None: box = form.save(commit=False) box.label = label box.created_by = request.user box.last_updated_by = request.user box.save() else: form.save() return redirect(next)