1- from django .db .models .query import QuerySet
1+ #!/usr/bin/env python3
2+ """Custom Serializers
3+ """
24from rest_framework import serializers
35from rest_framework_jwt .settings import api_settings
46from django .contrib .auth .models import User
5-
6- # API model
7- from .models import ApiInfo , Profile
7+ from django .contrib .auth .models import Group
8+ from core .models import ApiInfo , Profile
89
910# Groups require special processing.
10- # Source: https://stackoverflow.com/questions/33844003/how-to-serialize-groups-of-a-user-with-django-rest-framework/33844179
11- from django . contrib . auth . models import Group
11+ # Source: https://stackoverflow.com/questions/33844003/
12+ # how-to-serialize-groups-of-a-user-with-django-rest-framework/33844179
1213
1314class ChangePasswordSerializer (serializers .Serializer ):
14- """
15- Serializer for password change endpoint.
15+ """Serializer for password change endpoint.
1616
1717 * Provideds serializer for an old password and a new password
1818
@@ -21,68 +21,78 @@ class ChangePasswordSerializer(serializers.Serializer):
2121 """
2222
2323 model = User
24-
2524 old_password = serializers .CharField (required = True )
2625 new_password = serializers .CharField (required = True )
2726
2827# Profile serializer
2928class ProfileSerializer (serializers .ModelSerializer ):
29+ """Profile serializer
3030
31- # username = serializers.SlugRelatedField(slug_field = 'username', queryset = User.objects.all())
32-
33- class Meta :
34- model = Profile
35- fields = ('username' , 'public' , 'affiliation' , 'orcid' )
36-
37-
38-
39- # Profile serializer
40- class ProfileSerializer (serializers .ModelSerializer ):
41-
42- # username = serializers.SlugRelatedField(slug_field = 'username', queryset = User.objects.all())
31+ username = serializers.SlugRelatedField(slug_field = 'username', queryset = User.objects.all())
32+ """
4333
4434 class Meta :
35+ """Meta"""
4536 model = Profile
4637 fields = ('username' , 'public' , 'affiliation' , 'orcid' )
4738
4839
49-
5040# API serializer
5141class ApiSerializer (serializers .ModelSerializer ):
42+ """API Serializer
43+
44+ Only if the username on portal and the API are the same...
45+ """
5246
53- # Only if the username on portal and the API are the same...
54- # username = serializers.SlugRelatedField(slug_field = 'username', queryset = User.objects.all())
55-
5647 class Meta :
48+ """Meta"""
5749 model = ApiInfo
58- fields = ('username' , 'hostname' , 'human_readable_hostname' , 'public_hostname' , 'token' , 'other_info' ,)
50+ fields = (
51+ 'username' ,
52+ 'hostname' ,
53+ 'human_readable_hostname' ,
54+ 'public_hostname' ,
55+ 'token' ,
56+ 'other_info'
57+ )
5958
6059
6160class GroupSerializer (serializers .ModelSerializer ):
62-
61+ """Group Serializer"""
6362 class Meta :
63+ """Meta"""
6464 model = Group
6565 fields = ('name' ,)
6666
6767
6868class UserSerializer (serializers .ModelSerializer ):
69-
69+ """User Serializer"""
7070 apiinfo = ApiSerializer (source = 'custom_user' , many = True )
7171 groups = GroupSerializer (many = True )
7272 profile = ProfileSerializer (many = False )
7373
7474 class Meta :
75+ """Meta"""
7576 model = User
76- fields = ('username' , 'password' , 'first_name' , 'last_name' , 'email' , 'profile' , 'groups' , 'apiinfo' )
77+ fields = (
78+ 'username' ,
79+ 'password' ,
80+ 'first_name' ,
81+ 'last_name' ,
82+ 'email' ,
83+ 'profile' ,
84+ 'groups' ,
85+ 'apiinfo'
86+ )
7787
7888
7989class UserSerializerWithToken (serializers .ModelSerializer ):
80-
90+ """User Serializer"""
8191 token = serializers .SerializerMethodField ()
8292 password = serializers .CharField (write_only = True )
8393
8494 def get_token (self , obj ):
85-
95+ """Get Token"""
8696 jwt_payload_handler = api_settings .JWT_PAYLOAD_HANDLER
8797 jwt_encode_handler = api_settings .JWT_ENCODE_HANDLER
8898
@@ -92,7 +102,8 @@ def get_token(self, obj):
92102 return token
93103
94104 def create (self , validated_data ):
95-
105+ """Create
106+ """
96107 password = validated_data .pop ('password' , None )
97108 instance = self .Meta .model (** validated_data )
98109
@@ -103,5 +114,6 @@ def create(self, validated_data):
103114 return instance
104115
105116 class Meta :
117+ "Meta"
106118 model = User
107119 fields = ('token' , 'username' , 'password' , 'first_name' , 'last_name' , 'email' , 'groups' ,)
0 commit comments