Пользовательское ограничение авторизации в представлении django

У меня есть приложение. В приложении есть пользователи, посты, комментарии к постам и т.д. (это что-то вроде блога). Задача состоит в том, чтобы ограничить пользователей от редактирования объектов, которые не принадлежат пользователю. Например, пользователь не может редактировать записи, сделанные другим пользователем (или комментарии). Я хочу написать декоратор для этого, чтобы авторизировать действия пользователя. Так я и сделал, но теперь получаю ошибку

ValueError: The view blog.views.wrapper didn't return an HttpResponse object. It returned None instead.

Мой код:

def authorize(func):
    def wrapper(*args, **kwargs):
        if kwargs.get('post_id'):
            instance = get_object_or_404(Post, id=kwargs.get('post_id'))
            if not args[0].user.id == instance.author_id:
                return redirect(
                    'blog:post_detail', post_id=kwargs.get('post_id')
                )
            kwargs.update({'instance': instance})
        elif kwargs.get('comment_id'):
            instance = get_object_or_404(Comment, id=kwargs.get('comment_id'))
            if not args[0].user.id == instance.author_id:
                return redirect(
                    'blog:post_detail', post_id=kwargs.get('post_id')
                )
            kwargs.update({'instance': instance})
        func(*args, **kwargs)
    return wrapper

@login_required
@authorize
def edit_post(request, post_id, instance=None):
    instance = get_object_or_404(Post, id=post_id)
    form = PostForm(request.POST or None, instance=instance)
    context = {'form': form}
    if form.is_valid():
        form.save()
    return render(request, 'blog/create.html', context)

Что я делаю не так?

поэтому мне нужно вернуть func(*args, **kwargs)

Вернуться на верх