Your code needs to be refactored, here is the real deal, your
ChangePassowrdFrom is missing `request`, it should be as it is below
form = grandmas4hire.forms.ChangePasswordForm(request, request.POST)


On Wed, Nov 6, 2024 at 8:20 PM [email protected] <[email protected]>
wrote:

> Ruby
>
> Thank you very much.  Here is my code...
>
>
> INV        = grandmas4hire.models.Invitation
>
> ...
>
> def add_url_param(url, param, arg):
>
>         prefix = "&" if "?" in url else "/?"
>
>
>
>         return url + prefix + f'{param}={str(arg).replace(" ", "+")}'
>
>
> ---
>
> @django.contrib.auth.decorators.login_required
>
> def change_password(request):
>
>         user = request.user
>
>         msg  = request.GET.get("msg")
>
>         if request.method == "POST":
>
>                 form =
> grandmas4hire.forms.ChangePasswordForm(request.POST)
>                 if form.is_valid():
>
>                         new_password = form.cleaned_data["new_password"]
>
>                         inv          = INV.objects.get(user = user)
>
>                         inv.user.set_password(new_password)
>
>                         inv.user.save()
>
>
> django.contrib.auth.update_session_auth_hash(request,
>                                                                      user)
>
>                         url          = add_url_param("/change_password",
>
>                                                      "msg",
>
>                                                      "Password+changed.")
>
>                         reply        = django.shortcuts.redirect(url)
>
>                 else:
>
>                         reply = django.shortcuts.render(request,
>
>
> "change_password.html",
>                                                         {"form" : form})
>
>         else:
>
>                 form  = grandmas4hire.forms.ChangePasswordForm()
>
>                 reply = django.shortcuts.render(request,
>
>                                                 "change_password.html",
>
>                                                 {"form" : form,
>
>                                                  "msg"  : msg})
>
>
>
>         return reply
>
> On Tuesday, November 5, 2024 at 5:41:09 PM UTC-6 Ruby wrote:
>
>> How was it implemented?
>> Show a snippet from your code
>> See how it was used in my code
>>
>> form = ChangePasswordForm(request, request.POST)
>> if form.is_valid():
>> user = form.save()
>> update_session_auth_hash(request, user)
>> messages.success(
>> request, "Your password has been successfully updated")
>> return redirect(request.META.get('HTTP_REFERER'))
>>
>> On Tue, Nov 5, 2024 at 10:30 PM [email protected] <[email protected]>
>> wrote:
>>
>>> When I change a password, users are logged out.
>>> Django recommends keeping users logged in
>>> by calling django.contrib.auth.update_session_auth_hash(request, user).
>>>
>>> This is not working in a Django website of mine.
>>> They must log in again!?
>>>
>>> There are no error messages.  Is there any way I can provide
>>> more details?
>>>
>>> Chris
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Django users" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To view this discussion visit
>>> https://groups.google.com/d/msgid/django-users/04908d1c-a1e4-41ea-afd8-e227f78af8bcn%40googlegroups.com
>>> <https://groups.google.com/d/msgid/django-users/04908d1c-a1e4-41ea-afd8-e227f78af8bcn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion visit
> https://groups.google.com/d/msgid/django-users/0c0c2c50-5064-4e9d-a579-f0ddb323c11an%40googlegroups.com
> <https://groups.google.com/d/msgid/django-users/0c0c2c50-5064-4e9d-a579-f0ddb323c11an%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/django-users/CAPUD46tCgtE4bK6yrrZ18FuxE4oTsvkda%2BLG2S8Fz14pxrkb%3DA%40mail.gmail.com.

Reply via email to