#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. На самом деле, это была функция просмотра. Я попытался создать декоратора, но не смог найти никакого решения.