Я создаю веб-приложение с 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']