Settings

您可以选择提供DJOSER设置:

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

PASSWORD_RESET_CONFIRM_URL

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

Required: True

SEND_ACTIVATION_EMAIL

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

  • 通过RegistrationView创建帐户
  • 通过UserView更新他的电子邮件

Default: False

SEND_CONFIRMATION_EMAIL

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

Default: False

ACTIVATION_URL

URL to your frontend activation page. It should contain {uid} and {token} placeholders, e.g. #/activate/{uid}/{token}. You should pass uid and token to activation endpoint.

Required: True

SET_USERNAME_RETYPE

如果为True ,则需要将re_new_{{ User.USERNAME_FIELD }}传递到/{{ User.USERNAME_FIELD }}/端点,以验证用户名是否相等.

Default: False

SET_PASSWORD_RETYPE

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

Default: False

PASSWORD_RESET_CONFIRM_RETYPE

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

Default: False

LOGOUT_ON_PASSWORD_CHANGE

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

Default: False

USER_EMAIL_FIELD_NAME

确定User模型中的哪个字段用于1.11之前的Django版本中的电子邮件. 在Django 1.11中,此设置的更大值将被忽略,并使用User.get_email_field_name提供的值. 当Django 1.8 LTS停产时,此设置将被删除.

Default: 'email'

PASSWORD_RESET_SHOW_EMAIL_NOT_FOUND

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

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

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

Default: False

TOKEN_MODEL

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

Example: 'knox.models.AuthToken' Default: 'rest_framework.authtoken.models.Token'

SERIALIZERS

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

Note

现在,当前用户端点使用SERIALIZERS.current_user指定的SERIALIZERS.current_user . 这样可以提供更好的安全性和保密性:可以分别配置串行器,以使返回给当前用户的机密字段不会显示在常规用户端点中.

Examples

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

Default:

{
    'activation': 'djoser.serializers.ActivationSerializer',
    'password_reset': 'djoser.serializers.PasswordResetSerializer',
    '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',
    'user_create': 'djoser.serializers.UserCreateSerializer',
    'user_delete': 'djoser.serializers.UserDeleteSerializer',
    'user': 'djoser.serializers.UserSerializer',
    'current_user': 'djoser.serializers.CurrentUserSerializer',
    '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',
}

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

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

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'],
    'set_username': ['rest_framework.permissions.IsAuthenticated'],
    'user_create': ['rest_framework.permissions.AllowAny'],
    'user_delete': ['djoser.permissions.CurrentUserOrAdmin'],
    'user': ['djoser.permissions.CurrentUserOrAdminOrReadOnly'],
    'user_list': ['djoser.permissions.CurrentUserOrAdminOrReadOnly'],
    'token_create': ['rest_framework.permissions.AllowAny'],
    'token_destroy': ['rest_framework.permissions.IsAuthenticated'],
}