Я играю с django и создаю небольшое приложение, где пользователь может получить доступ к своей информации через URL-адрес http:///localhost:8000/username/info/. Я хочу добавить возможность редактировать эту информацию через http:///localhost:8000/username/info/edit/, но также хочу убедиться, что текущий пользователь (с помощью django.contrib.auth) может получить доступ только к своей информации. Я совершил это, выполнив следующие действия в представлении (имя пользователя в видовых арг захватывается из URL):django - ограничить пользователей редактировать только свою информацию
@login_required
def edit_info(request, username=''):
if request.user.username == username:
# allow accessing and editing the info..
else:
# redirect to some error page
Таким образом, очевидно, я не хочу пользователя «джонни» редактировать инфо принадлежащий пользователю 'jimmy', просто указав свой браузер на/jimmy/info/edit /. Вышеупомянутые работы, но я обеспокоен тем, что мне не хватает чего-то здесь, насколько безопасность идет. Правильно ли это? Спасибо.
Я был бы фанатом в ответ с кодом ошибки 403 в вашем 'else' блока. –