|
6 | 6 | from django.utils.translation import ugettext_lazy as _
|
7 | 7 | from django.utils.encoding import force_text
|
8 | 8 |
|
9 |
| -from .models import TokenModel |
10 |
| - |
11 | 9 | from rest_framework import serializers, exceptions
|
12 | 10 | from rest_framework.exceptions import ValidationError
|
13 | 11 |
|
| 12 | +from .models import TokenModel |
| 13 | +from .utils import import_callable |
| 14 | + |
14 | 15 | # Get the UserModel
|
15 | 16 | UserModel = get_user_model()
|
16 | 17 |
|
@@ -130,21 +131,20 @@ class Meta:
|
130 | 131 | read_only_fields = ('email', )
|
131 | 132 |
|
132 | 133 |
|
| 134 | +# Required to allow using custom UserDetailsSerializer in |
| 135 | +# JWTSerializer |
| 136 | +rest_auth_serializers = getattr(settings, 'REST_AUTH_SERIALIZERS', {}) |
| 137 | +JWTUserDetailsSerializer = import_callable( |
| 138 | + rest_auth_serializers.get('USER_DETAILS_SERIALIZER', UserDetailsSerializer) |
| 139 | +) |
| 140 | + |
| 141 | + |
133 | 142 | class JWTSerializer(serializers.Serializer):
|
134 | 143 | """
|
135 | 144 | Serializer for JWT authentication.
|
136 | 145 | """
|
137 | 146 | token = serializers.CharField()
|
138 |
| - |
139 |
| - def __init__(self, *args, **kwargs): |
140 |
| - """ |
141 |
| - Need to add `user` field dynamically, to allow using |
142 |
| - custom UserDetailsSerializer |
143 |
| - """ |
144 |
| - from app_settings import UserDetailsSerializer |
145 |
| - |
146 |
| - super(JWTSerializer, self).__init__(*args, **kwargs) |
147 |
| - self.fields['user'] = UserDetailsSerializer() |
| 147 | + user = JWTUserDetailsSerializer() |
148 | 148 |
|
149 | 149 |
|
150 | 150 | class PasswordResetSerializer(serializers.Serializer):
|
|
0 commit comments