Доброго времени суток! Не могу понять как реализовать просмотр чужого профиля. Есть немного измененная модель юзера, форма входа:
class LoginFormView(FormView):
form_class = AuthenticationForm
template_name = "login.html"
success_url = "/"
def form_valid(self, form):
self.user = form.get_user()
login(self.request, self.user)
return super(LoginFormView, self).form_valid(form)
def form_invalid(self, form):
return super(LoginFormView, self).form_invalid(form)
сам профиль:
class ProfileView(LoginRequiredMixin, DetailView):
model = User
template_name = 'profile.html'
pk_url_kwarg = 'user_pk'
и форма его редактирования:
class UpdateProfileView(LoginRequiredMixin, UpdateView):
form_class = UpdateForm
model = User
template_name = 'profile_update.html'
pk_url_kwarg = 'user_pk'
def get(self, request, *args, **kwargs):
user = User.objects.get(pk=self.kwargs['user_pk'])
if user != request.user:
return HttpResponseForbidden()
else:
return super(UpdateProfileView, self).get(request, *args, **kwargs)
def get_success_url(self):
return reverse('profile_update', kwargs={'user_pk': self.kwargs['user_pk']})
Суть в том что если я в адресной строке изменяю id юзера при просмотре профиля, происходит перелогин под соответствующий id. И если во вьюхе редактирования в методе get я вставил костыльную проверку на конкретного пользователя, чтоб в ином случае ограничивал доступ, то просто при просмотре не могу понять как поступить.
url:
url(r'^profile/(?P<user_pk>\d+)/$', ProfileView.as_view(), name='profile')
в шаблоне обращаюсь так:
<li><a href="{% url 'profile' user_pk=user.pk %}">профиль</a></li>
Как мне сделать так чтоб была возможность просто просматривать чей-то профиль без автоматического перелогина под этого пользователя?