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

#python-3.x #django #redirect #django-views #django-templates

#python-3.x #джанго #перенаправлять #джанго-просмотры #django-шаблоны

Вопрос:

Я создал веб-приложение для дневника в Django. В нем хранятся все дневники в зашифрованном виде. Я хочу спросить пароль, когда пользователь пытается просмотреть, обновить или удалить свой дневник. Это не означает, что требуется вход в систему. Я хочу спросить пароль пользователя, даже если пользователь вошел в систему. Я попытался создать декоратора для этого, но не смог его завершить. У меня есть два мнения:

Это представление проверяет правильность пароля:

 def check_master_password_view(request):  page = 'check'  profile = request.user.profile  if request.method == "POST":  checked = check_master_password(request.POST['password'], profile.master_password)  if checked:  return checked # OR Redirect another page  else:  messages.error(request, 'You entered wrong password !')  context = {  'page':page,  }  return render(request, 'users/create_or_check_master_password.html', context)  

Другой вид-это детальный вид:

 def detail_diary_view(request, pk):  profile = request.user.profile  diary = profile.diary_set.get(id=pk)  diary.diary = decrypt_diary(request, diary.diary)  context = {  'diary': diary  }  return render(request, 'diary/detail_diary.html', context)  

Когда пользователь нажимает ссылку для просмотра дневника, я хочу показать представление check_master_password. Если пользователь вводит правильный пароль, я хочу перенаправить его на фактическую страницу (просмотр, обновление, удаление страниц). Как я могу это сделать?

Комментарии:

1. Является ли первая функция, о которой идет речь decorator ?

2. На самом деле, это была функция просмотра. Я попытался создать декоратора, но не смог найти никакого решения.