my_app.decorators.wrapper_fun c не возвращал объект HttpResponse. Вместо этого он вернулся - PullRequest
0 голосов
/ 02 мая 2020

Я создаю веб-приложение с django. В этом приложении зарегистрированный пользователь может go на своей странице профиля, где он имеет свои собственные сообщения. Я также создал форму, в которую он мог бы добавить сообщение прямо с веб-сайта, но когда он отправил форму, появляется ошибка (my_app.decorators.wrapper_fun c не возвращает объект HttpResponse. Вместо этого он возвращает None.) Я пытался чтобы решить это в течение трех дней, но я до сих пор не знаю, как это исправить. Я благодарен за каждый ответ.

decoratosr.py:
from django.http import HttpResponse
from django.shortcuts import redirect

def unauthenticated_user(view_func):
    def wrapper_func(response, *args, **kwargs):
        if response.user.is_authenticated:
            return redirect('/')
        else:
            return view_func(response, *args, **kwargs)

    return wrapper_func

def authenticated_user(view_func):
    def wrapper_func(response, *args, **kwargs):
        if response.user.is_authenticated:
            return view_func(response, *args, **kwargs)
        else:
            return redirect('/')

    return wrapper_func

views.py:
@authenticated_user
def profilePage(response):
    user = response.user
    profile = Profile.objects.get(user=user)
    all_posts = profile.posts_set.order_by('-created_date')
    context = {'posts': all_posts, 'user': user}
    return render(response, "app_nature/profile.html", context)

@authenticated_user
def AddPost(response):
    user = response.user
    profile = Profile.objects.get(user=user)
    if response.method == "POST":
        form = UploadPost(response.POST)

        if form.is_valid():
            post_save = posts(author=profile)
            post_save.save()
            form.save()
            return HttpResponseRedirect("/profile")
    else:
        form = UploadPost()
        context = {"form": form}
        return render(response, "app_nature/add_post_page.html", context)


forms.py:
class UploadPost(ModelForm):
    class Meta:
        model = posts
        fields = ['image', 'description']

...