Settings

您可以提供DJOSER设置,如下所示:

DJOSER = {
    'PASSWORD_RESET_CONFIRM_URL': '#/password/reset/confirm/{uid}/{token}',
    'USERNAME_RESET_CONFIRM_URL': '#/username/reset/confirm/{uid}/{token}',
    'ACTIVATION_URL': '#/activate/{uid}/{token}',
    'SEND_ACTIVATION_EMAIL': True,
    'SERIALIZERS': {},
}

Note

以下所有用CAPS编写的设置名称都是DJOSER字典上的键.

USER_ID_FIELD

用户模型中唯一的字段名称,用作/users/<id>/端点的/users/<id>/ . 如果您不想更改用户模型的默认主键并向公众隐藏,这将很有用.

Default: User._meta.pk.name where User is the model set with Django’s setting AUTH_USER_MODEL.

LOGIN_FIELD

用户模型中用作登录字段的字段名称. 如果要在不提供自定义用户模型的情况下将登录usernameusername更改为email这将很有用.

默认值User.USERNAME_FIELD ,其中User是使用Django的AUTH_USER_MODEL设置的模型.

PASSWORD_RESET_CONFIRM_URL

前端密码重设页面的URL. 它应包含{uid}{token}占位符,例如#/password-reset/{uid}/{token} . 您应该传递uidtoken来重置密码确认端点.

Required: True

USERNAME_RESET_CONFIRM_URL

前端用户名重置页面的URL. 它应包含{uid}{token}占位符,例如#/username-reset/{uid}/{token} . 您应该传递uidtoken来重置用户名确认端点.

Required: True

SEND_ACTIVATION_EMAIL

如果将要求True用户在以下情况下单击通过电子邮件发送的激活链接:

  • 创建一个账户
  • 更新他们的电子邮件

Default: False

SEND_CONFIRMATION_EMAIL

如果为True ,则注册或激活端点将向用户发送确认电子邮件.

Default: False

PASSWORD_CHANGED_EMAIL_CONFIRMATION

如果为True ,则更改密码端点将向用户发送确认电子邮件.

Default: False

USERNAME_CHANGED_EMAIL_CONFIRMATION

如果为True ,则更改用户名端点将向用户发送确认电子邮件.

Default: False

ACTIVATION_URL

前端激活页面的URL. 它应包含{uid}{token}占位符,例如#/activate/{uid}/{token} . 您应该将uidtoken传递给激活端点.

Required: True

USER_CREATE_PASSWORD_RETYPE

如果为True ,则需要将re_password传递到/users/端点,以验证密码是否相等.

Default: False

SET_USERNAME_RETYPE

如果为True ,则需要将re_new_username传递到/users/set_username/端点,以验证用户名是否相等.

Default: False

SET_PASSWORD_RETYPE

如果为True ,则需要将re_new_password传递到/users/set_password/端点,以验证密码是否相等.

Default: False

PASSWORD_RESET_CONFIRM_RETYPE

如果为True ,则需要将re_new_password传递到/users/reset_password_confirm/端点,以验证密码的相等性.

Default: False

USERNAME_RESET_CONFIRM_RETYPE

如果为True ,则需要将re_new_username传递到/users/reset_username_confirm/端点,以验证用户名是否相等.

Default: False

LOGOUT_ON_PASSWORD_CHANGE

如果为True ,则设置新密码将注销用户.

Default: False

Note

注销仅适用于基于令牌的身份验证.

PASSWORD_RESET_SHOW_EMAIL_NOT_FOUND

如果为True ,则将不存在的email发布到/users/reset_password/将返回HTTP_400_BAD_REQUEST响应,并带有EMAIL_NOT_FOUND错误消息("不存在具有给定电子邮件的用户.").

如果为False (默认),则/users/reset_password/端点将始终返回HTTP_204_NO_CONTENT响应.

请注意,将此选项设置为True会显示是否在系统中注册了电子邮件的信息.

Default: False

USERNAME_RESET_SHOW_EMAIL_NOT_FOUND

如果为True ,则将不存在的email发布到/users/reset_username/将返回HTTP_400_BAD_REQUEST响应,并带有EMAIL_NOT_FOUND错误消息("不存在具有给定电子邮件的用户.").

如果为False (默认),则/users/reset_username/端点将始终返回HTTP_204_NO_CONTENT响应.

Please note that setting this to True will expose information whether an email is registered in the system.

Default: False

TOKEN_MODEL

令牌模型应用于身份验证的点. 如果仅在项目中使用无状态令牌(例如JWT),则应将其设置为None .

Example: 'knox.models.AuthToken'

Default: 'rest_framework.authtoken.models.Token'

SERIALIZERS

将djoser序列化程序名称映射到序列化程序类的字典(使用虚线路径). 此设置提供了一种轻松覆盖给定序列化程序的方法-用于更新默认值,因此通过提供(例如)一个键,所有其他键将保持默认值.

Note

'user'用于一般用户,而'current_user'可让您为特殊的/users/me端点设置序列化程序. 它们都默认使用相同的序列化器.

Examples

{
    'user': 'myapp.serializers.SpecialUserSerializer',
}

Default:

{
    'activation': 'djoser.serializers.ActivationSerializer',
    'password_reset': 'djoser.serializers.SendEmailResetSerializer',
    'password_reset_confirm': 'djoser.serializers.PasswordResetConfirmSerializer',
    'password_reset_confirm_retype': 'djoser.serializers.PasswordResetConfirmRetypeSerializer',
    'set_password': 'djoser.serializers.SetPasswordSerializer',
    'set_password_retype': 'djoser.serializers.SetPasswordRetypeSerializer',
    'set_username': 'djoser.serializers.SetUsernameSerializer',
    'set_username_retype': 'djoser.serializers.SetUsernameRetypeSerializer',
    'username_reset': 'djoser.serializers.SendEmailResetSerializer',
    'username_reset_confirm': 'djoser.serializers.UsernameResetConfirmSerializer',
    'username_reset_confirm_retype': 'djoser.serializers.UsernameResetConfirmRetypeSerializer',
    'user_create': 'djoser.serializers.UserCreateSerializer',
    'user_create_password_retype': 'djoser.serializers.UserCreatePasswordRetypeSerializer',
    'user_delete': 'djoser.serializers.UserDeleteSerializer',
    'user': 'djoser.serializers.UserSerializer',
    'current_user': 'djoser.serializers.UserSerializer',
    'token': 'djoser.serializers.TokenSerializer',
    'token_create': 'djoser.serializers.TokenCreateSerializer',
}

EMAIL

将djoser电子邮件名称映射到电子邮件类别路径的字典. 与SERIALIZERS相同,它允许部分覆盖.

Examples

{
    'activation': 'myapp.email.AwesomeActivationEmail',
}

Default:

{
    'activation': 'djoser.email.ActivationEmail',
    'confirmation': 'djoser.email.ConfirmationEmail',
    'password_reset': 'djoser.email.PasswordResetEmail',
    'password_changed_confirmation': 'djoser.email.PasswordChangedConfirmationEmail',
    'username_changed_confirmation': 'djoser.email.UsernameChangedConfirmationEmail',
    'username_reset': 'djoser.email.UsernameResetEmail',
}

CONSTANTS

将djoser常量名称映射到常量类路径的字典. 与SERIALIZERS相同,它允许部分覆盖.

Examples

{
    'messages': 'myapp.constants.CustomMessages',
}

Default:

{
    'messages': 'djoser.constants.Messages',
}

SOCIAL_AUTH_TOKEN_STRATEGY

负责社会认证使用的令牌策略的类的字符串路径.

Example: 'myapp.token.MyStrategy'

Default: 'djoser.social.token.jwt.TokenStrategy'

SOCIAL_AUTH_ALLOWED_REDIRECT_URIS

用于社交身份验证的允许重定向URI的列表.

Example: ['https://auth.example.com']

Default: []

PERMISSIONS

在2.0版中进行了更改.

将权限映射到Djoser中某些视图的字典.

Note

类名称中的Admin是指将is_staff标志设置为True的用户,而不是超级用户.

Examples

{
    'user': ['djoser.permissions.CurrentUserOrAdminOrReadOnly']
}

Defaults

{
    'activation': ['rest_framework.permissions.AllowAny'],
    'password_reset': ['rest_framework.permissions.AllowAny'],
    'password_reset_confirm': ['rest_framework.permissions.AllowAny'],
    'set_password': ['djoser.permissions.CurrentUserOrAdmin'],
    'username_reset': ['rest_framework.permissions.AllowAny'],
    'username_reset_confirm': ['rest_framework.permissions.AllowAny'],
    'set_username': ['djoser.permissions.CurrentUserOrAdmin'],
    'user_create': ['rest_framework.permissions.AllowAny'],
    'user_delete': ['djoser.permissions.CurrentUserOrAdmin'],
    'user': ['djoser.permissions.CurrentUserOrAdmin'],
    'user_list': ['djoser.permissions.CurrentUserOrAdmin'],
    'token_create': ['rest_framework.permissions.AllowAny'],
    'token_destroy': ['rest_framework.permissions.IsAuthenticated'],
}

HIDE_USERS

2.0版中的新功能.

如果设置为True,则按普通用户列出/users/ enpoint只会在列表中返回该用户的个人资料. 除此之外,未经适当权限的用户访问/users/<id>/端点将导致HTTP 404而不是HTTP 403.

Default: True