Skip to content
This repository was archived by the owner on May 26, 2020. It is now read-only.

Commit 898fdac

Browse files
committed
Add PasswordField for compat
1 parent eb20889 commit 898fdac

File tree

3 files changed

+15
-7
lines changed

3 files changed

+15
-7
lines changed

rest_framework_jwt/compat.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,24 @@
11
import rest_framework
2-
2+
from django.forms import widgets
33
from distutils.version import StrictVersion
44

55

66
if StrictVersion(rest_framework.VERSION) < StrictVersion('3.0.0'):
7-
from rest_framework.serializers import Serializer
7+
from rest_framework.serializers import Serializer, CharField
8+
9+
class PasswordField(CharField):
10+
widget = widgets.PasswordInput
811
else:
912
class Serializer(rest_framework.serializers.Serializer):
1013
@property
1114
def object(self):
1215
return self.validated_data
1316

17+
class PasswordField(rest_framework.serializers.CharField):
18+
style = {
19+
'input_type': 'password'
20+
}
21+
1422

1523
def get_user_model():
1624
try:

rest_framework_jwt/serializers.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@
88
from rest_framework import serializers
99
from .compat import Serializer
1010

11-
from rest_framework_jwt.compat import get_user_model, get_username_field
1211
from rest_framework_jwt.settings import api_settings
12+
from rest_framework_jwt.compat import (
13+
get_user_model, get_username_field, PasswordField
14+
)
1315

1416

1517
User = get_user_model()
@@ -34,9 +36,7 @@ def __init__(self, *args, **kwargs):
3436
super(JSONWebTokenSerializer, self).__init__(*args, **kwargs)
3537

3638
self.fields[self.username_field] = serializers.CharField()
37-
self.fields['password'] = serializers.CharField(
38-
style={'input_type': 'password'}
39-
)
39+
self.fields['password'] = PasswordField(write_only=True)
4040

4141
@property
4242
def username_field(self):

tests/test_serializers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def test_empty_drf3(self):
4141
serializer = JSONWebTokenSerializer()
4242
expected = {
4343
'username': '',
44-
'password': '',
44+
'password': ''
4545
}
4646

4747
self.assertEqual(serializer.data, expected)

0 commit comments

Comments
 (0)