MCPcopy
hub / github.com/django/django / save

Method save

django/contrib/auth/forms.py:444–488  ·  view source on GitHub ↗

Generate a one-use only link for resetting password and send it to the user.

(
        self,
        domain_override=None,
        subject_template_name="registration/password_reset_subject.txt",
        email_template_name="registration/password_reset_email.html",
        use_https=False,
        token_generator=default_token_generator,
        from_email=None,
        request=None,
        html_email_template_name=None,
        extra_email_context=None,
    )

Source from the content-addressed store, hash-verified

442 )
443
444 def save(
445 self,
446 domain_override=None,
447 subject_template_name="registration/password_reset_subject.txt",
448 email_template_name="registration/password_reset_email.html",
449 use_https=False,
450 token_generator=default_token_generator,
451 from_email=None,
452 request=None,
453 html_email_template_name=None,
454 extra_email_context=None,
455 ):
456 """
457 Generate a one-use only link for resetting password and send it to the
458 user.
459 """
460 email = self.cleaned_data["email"]
461 if not domain_override:
462 current_site = get_current_site(request)
463 site_name = current_site.name
464 domain = current_site.domain
465 else:
466 site_name = domain = domain_override
467 email_field_name = UserModel.get_email_field_name()
468 for user in self.get_users(email):
469 user_email = getattr(user, email_field_name)
470 user_pk_bytes = force_bytes(UserModel._meta.pk.value_to_string(user))
471 context = {
472 "email": user_email,
473 "domain": domain,
474 "site_name": site_name,
475 "uid": urlsafe_base64_encode(user_pk_bytes),
476 "user": user,
477 "token": token_generator.make_token(user),
478 "protocol": "https" if use_https else "http",
479 **(extra_email_context or {}),
480 }
481 self.send_mail(
482 subject_template_name,
483 email_template_name,
484 context,
485 from_email,
486 user_email,
487 html_email_template_name=html_email_template_name,
488 )
489
490
491class SetPasswordForm(SetPasswordMixin, forms.Form):

Calls 8

get_usersMethod · 0.95
send_mailMethod · 0.95
get_current_siteFunction · 0.90
force_bytesFunction · 0.90
urlsafe_base64_encodeFunction · 0.90
get_email_field_nameMethod · 0.80
make_tokenMethod · 0.80
value_to_stringMethod · 0.45