首页 > 解决方案 > Django:如何在基于类的视图中获取登录用户的用户名?

问题描述

我已经实现了一个 DeleteView 并希望它在删除对象后将其重定向到登录用户的配置文件:

class DeleteAttendanceFeedItem(DeleteView, LoginRequiredMixin):
    model = AttendanceFeedItem
    template_name = "users/delete_attendance_feed_item.html"
    context_object_name = "attendance_feed_item"
    success_url = reverse_lazy("user_profile", kwargs={"username" : request.user.username})

不过,我无权访问基于类的视图中的请求对象。搜索 StackOverflow 表明我可以访问 self.request.user.username,但这会引发相同的错误。

这似乎是一件非常简单的事情,我花了惊人的大量时间阅读 SO 和 Django 文档却完全无济于事。帮助?

标签: djangodjango-class-based-views

解决方案


用于self.request.user.username获取get_success_url()方法内的用户名

class DeleteAttendanceFeedItem(DeleteView, LoginRequiredMixin):
    model = AttendanceFeedItem
    template_name = "users/delete_attendance_feed_item.html"
    context_object_name = "attendance_feed_item"

    def get_success_url(self):
        return reverse_lazy("user_profile", kwargs={"username": self.request.user.username})

推荐阅读