Ограничить количество страниц, которые может просматривать анонимный пользователь, в Django - PullRequest
0 голосов
/ 20 июня 2020

Я создаю веб-сайт, поток которого состоит примерно из 7 страниц. Пользователь может перейти на страницу 1 потока только в том случае, если у него есть указанный c url, который выглядит как ..

domain.com/flow/home/uid=123

UID проверяется в моих моделях, чтобы узнать, существует ли он и есть ли, они видят правильную страницу1. Если его нет, они перенаправляются на другую страницу. Я хочу убедиться, что они могут перейти на страницу 2, но только если им это разрешено. У меня есть 2 идеи, которые не уверены, правильный ли это способ или существует другой лучший способ.

  1. Установите для переменной запроса значение «разрешено» и проверяйте его на каждой странице. Если он не установлен, перенаправьте их обратно на главную.

  2. Передайте uid в URL-адресе и убедитесь, что он действителен на каждой странице.

Я склоняюсь к варианту 1, так как он проще / чище, но я хотел проверить, существуют ли другие решения.

1 Ответ

0 голосов
/ 20 июня 2020

Вы можете создать собственную модель пользователя, и там вы можете разрешить свойство. Затем проверьте, выполняется ли условие request.user.allowed для перехода на страницу 2. https://docs.djangoproject.com/en/3.0/topics/auth/customizing/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...