Передать значение переменной из одной функции в другую. Django
Помогите разобраться. У меня есть функция, вызывающая форму, где я ввожу данные user. Мне необходимо из этой функции передать user в другую. Реализация следующая views.py функция для ввода пользовательских данных:
def index(request):
model = Users.objects.all()
user = Users()
form = AuthUserForm(request.POST if request.POST else None)
if request.method == 'POST':
#в этом if я нахожу нужного мне user
return render(request, 'main/user.html', {'user': user})
return render(request, 'main/login.html', {'form': form, 'user': user})
и вторая функция, где мне нужно использовать этот user
def change_password(request):
user = Users()
form = Change_Password(request.POST if request.POST else None)
return render(request, 'main/change_password.html', {'form': form, 'user': user})
я только разбираюсь в Django. рассмотрю любые варианты решения.
При смене пароля, может подразумеваться две вещи
Смена пароля при неавторизированном пользователе, тогда простейшая логика отправить письмо на почту с ссылкой на смену (есть готовая реализация в django туториал на английском)
Смена пароля, когда авторизация пройдена. Первое, не используйте глобальной переменной в данной рутине. Второе,
requestуже будет содержать полеuserи к нему можно обратиться такdef change_password(request): if request.method == "POST": user = request.user # текущий пользователь страницыПеременная
userв этом случае будет содержать одну из двух сущностей:- если пользователь не залогинен, тогда
анонминый пользователь- AnonymousUser - если пользователь залогинен, тогда
пользователь- User
Чтобы проверить залогинен ли пользователь, уже существует функция для этого
request.user.is_authenticated # возвращает True/False- если пользователь не залогинен, тогда
Передавать пользователя между функциями в вашем случае не имеет смысла, работайте с текущим пользователем страницы request.user.