Возврат вывода функции в представление функции django

Я хочу использовать вывод из функции в представлении на основе функции.

Передача вывода функции get_context_data в представление функции ShowProfilePage

def ShowProfilePageView(request, username):
    

    def get_context_data(self, *args, **kwargs):
        context = super(ShowProfilePageView, self).get_context_data(*args, **kwargs)
        page_user = get_object_or_404(UserProfile, id=self.kwargs['pk'])
        user_posts = Post.objects.filter(author= page_user.user).order_by('-post_date')
        username =  page_user.user
        context['page_user'] = page_user
        context['user_posts'] = user_posts
        context['username'] = username
        return context

    context = {}
    return render(request, 'registration/user_profile.html', context)

Вы путаете Django class-based view и function-based view. Вам также следует пересмотреть свои знания ООП в Python, потому что

super(ShowProfilePageView, self).get_context_data(*args, **kwargs)

связано с концепцией наследования для классов, но вы определяете и используете в функции, которая является ShowProfilePageView.

Я пытаюсь исправить ваш код:

def ShowProfilePageView(request, username):

    page_user = get_object_or_404(UserProfile, username=username)
    user_posts = Post.objects.filter(author=page_user.user).order_by("-post_date")
    username = page_user.user
    context = {"page_user": page_user, "user_posts": user_posts, "username": username}

    return render(request, "registration/user_profile.html", context)
Вернуться на верх