rest_auth.users.serializers

class rest_auth.users.serializers.UserSerializer(instance=None, data=<class 'rest_framework.fields.empty'>, **kwargs)[source]

User serializer for rest_framework & AUTH_USER_MODEL.

Fields & methods are built on a django’s defualt User model. Extend this serializer if you need your custom user model.

(Even if AUTH_USER_MODEL is can be customized, this is recommended that You don’t change & use customized user model. using custom user model is very complex.)

Parameters:
  • usernameUSERNAME_FIELD of AUTH_USER_MODEL
  • emailUser.get_email_field_name()
  • password1 – password of a user (write_only, used only when created)
  • password2 – password confirmation (write_only)
TODO:

Serializer Only implements creating. list/get are need to be implmtd

validate(data)[source]

Vaildates if two passwords are equal.

Raises:ValidationError – when 2 passwds are different
create(validated_data)[source]

Creates user instance

CAVEAT:

A clear difference between django’s ModelForm and rest_framework’s ModelSerializer is that, model serializer’s save method doesn’t respect form’s commit=True.

Inside super().create, a query is fired to create user, and inside this, additional query is fired to save hashed password. It’s because ModelSerializer’s create method uses default manager’s create function, Model._default_manager.create()

(User model creation is recommended by calling UserManager’s create_user method)

Parameters:validated_data – validated data created after self.vaildate
send_mail(user, domain_override=None, subject_template_name='registration/verify_email.txt', email_template_name='registration/verify_email.html', use_https=False, token_generator=<django.contrib.auth.tokens.PasswordResetTokenGenerator object>, from_email=None, request=None, html_email_template_name=None, extra_email_context=None)[source]

Send verification mail to newbie.