Я пишу простое приложение django для управления страницами на сайте.
Страницы создаются через сайт администратора и могут быть просмотрены с помощью функции «просмотр на сайте».
Каждая страница имеет «опубликованное» логическое значение, определяющее, должно ли представление, отображающее страницы, отображать его на сайте.
Конечно, после того, как я изменил представление в отношении «опубликованной» ссылки «просмотр на сайте» страницы администратора, страница также не будет отображаться.
Но я хочу иметь возможность предварительного просмотра неопубликованных страниц в процессе редактирования.
Поэтому я решил изменить представление, чтобы проверить, есть ли аутентифицированный пользователь, связанный с запросом.
Например:
if request.user.is_authenticated() and request.user.is_staff:
manager=Pages.objects #returns all pages
else:
manager=Pages.live #only returns published pages
Затем соответствующий менеджер передается в get_object_or_404 вместе с идентификатором страницы, полученным из URL
Однако в представлении пользователь всегда является анонимным, даже если пользователь, прошедший проверку подлинности на сайте администратора, щелкает ссылку «просмотр на сайте».
Таким образом, «живой» менеджер всегда используется, и у меня тот же результат, что и раньше: 404, когда неопубликованные страницы доступны с сайта администратора.
Это так, как он должен себя вести?
Я действительно думал, что информация о сеансе будет унаследована от сеанса администратора сайта.
Я был бы признателен за любое направление здесь, потому что я, возможно, не слишком ясно, как это должно работать.
Мне не нужен механизм входа на сайт, поэтому я надеялся получить выгоду от входа администратора, чтобы получить возможность просматривать неопубликованные страницы в администраторе.
Спасибо