def edit(self, request, *args, **kwargs):
        changeset = self.get_object()
        with changeset.lock_to_edit(request) as changeset:
            if not changeset.can_edit(request):
                raise PermissionDenied(_('You cannot edit this change set.'))

            form = ChangeSetForm(instance=changeset, data=get_api_post_data(request))
            if not form.is_valid():
                raise ParseError(form.errors)

            changeset = form.instance
            update = changeset.updates.create(user=request.user,
                                              title=changeset.title, description=changeset.description)
            changeset.last_update = update
            changeset.save()
            return Response({'success': True})