Джанго классовые представления - PullRequest
0 голосов
/ 23 августа 2011

шаблон URL

 url(r'(?P<username>\w+)/$', ProfileView.as_view()),

вид

class ProfileView(TemplateView):
    template_name = "home.html"

    @method_decorator(login_required(login_url='/'))
    def dispatch(self, *args, **kwargs):
        return super(ProfileView, self).dispatch(*args, **kwargs)

Моя основная функция просмотра гарантирует, что зарегистрированные пользователи перенаправляются на страницу своего профиля, таким образом:

WEBSITE/users/someuser

Будет вызывать мой ProfileView.as_view (), однако это по-прежнему позволяет пользователям изменять URL-адрес примерно так:

WEBSITE/users/someotheruser

Что не вредно, потому что оно все равно будет просто отображать данные request.user, но я бы предпочел уловить это поведение, всегда перенаправляя к текущему пользователю .. Я не совсем понимаю, как?

1 Ответ

0 голосов
/ 01 ноября 2013

Попробуйте это:

class ProfileView(TemplateView):
template_name = "home.html"

    @method_decorator(login_required(login_url='/'))
    def dispatch(self, *args, **kwargs):
        if request.user.username == username:
            return super(ProfileView, self).dispatch(*args, **kwargs)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...