Django: Как мне получить имя пользователя вошедшего в систему в моем представлении на основе класса? - PullRequest
0 голосов
/ 14 июля 2020

Я реализовал 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 документация абсолютно бесполезна. Помогите?

1 Ответ

1 голос
/ 14 июля 2020

Используйте 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"

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