почему параметры имени пользователя django, переданные в URL, подключаются напрямую и как это предотвратить - PullRequest
0 голосов
/ 26 мая 2019

Я пытаюсь получить доступ к профилю пользователя, если параметры URL-адреса - профиль / имя пользователя, он работает, но у меня проблема с безопасностью, потому что пользователь напрямую подключен.

Как я могу определить в профиле пользователя django доступ в зависимости отесли пользователь аутентифицирован или нет

profil.html

{% if  user.is_authenticated %}
            <p>{{ user.username}}</p>
            <a href="">edit your profile</a>

            {% else %}
            <p>{{ user.username}}</p>
            <p>basic profile of user</p>
 {% endif%}

views.py

def profil(request,username):
    user=get_object_or_404(User, username=username)
    context = {
        'user':user
    }
    return render(request, 'service/profil.html',context)

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

Я исправил, моя проблема была

{% if request.user == requested_user %} <p>{{ requested_user.username}}</p> <a href="">edit your profile</a> {% else %} <p>{{ requested_user.username}}</p> <p>basic profile of user</p> {% endif%}

0 голосов
/ 26 мая 2019

Вы можете использовать необходимый логин декоратор .Просто добавьте его к вашему виду:

from django.contrib.auth.decorators import login_required

@login_required
def profil(request, username):
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...