Skip to content

Commit 69ef459

Browse files
Refactor to use SIGNUP_FIELDS for username and email requirement checks, fix deprecated settings warnings (#697)
* Refactor to use SIGNUP_FIELDS for username and email requirement checks * Fixes Serializer --------- Co-authored-by: @iMerica <michaelmartinez@me.com>
1 parent 0384733 commit 69ef459

1 file changed

Lines changed: 15 additions & 3 deletions

File tree

dj_rest_auth/registration/serializers.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,18 @@
2121
raise ImportError('allauth needs to be added to INSTALLED_APPS.')
2222

2323

24+
def _signup_field_required(field_name, default=True):
25+
"""Get field 'required' from SIGNUP_FIELDS (allauth>=65.5) with fallback."""
26+
if hasattr(allauth_account_settings, 'SIGNUP_FIELDS'):
27+
return allauth_account_settings.SIGNUP_FIELDS.get(field_name, {}).get('required', default)
28+
# Fallback for older allauth versions
29+
if field_name == 'username':
30+
return allauth_account_settings.USERNAME_REQUIRED
31+
if field_name == 'email':
32+
return allauth_account_settings.EMAIL_REQUIRED
33+
return default
34+
35+
2436
class SocialAccountSerializer(serializers.ModelSerializer):
2537
"""
2638
serialize allauth SocialAccounts for use with a REST API
@@ -222,9 +234,9 @@ class RegisterSerializer(serializers.Serializer):
222234
username = serializers.CharField(
223235
max_length=get_username_max_length(),
224236
min_length=allauth_account_settings.USERNAME_MIN_LENGTH,
225-
required=allauth_account_settings.USERNAME_REQUIRED,
237+
required=_signup_field_required('username'),
226238
)
227-
email = serializers.EmailField(required=allauth_account_settings.EMAIL_REQUIRED)
239+
email = serializers.EmailField(required=_signup_field_required('email'))
228240
password1 = serializers.CharField(write_only=True)
229241
password2 = serializers.CharField(write_only=True)
230242

@@ -282,4 +294,4 @@ class VerifyEmailSerializer(serializers.Serializer):
282294

283295

284296
class ResendEmailVerificationSerializer(serializers.Serializer):
285-
email = serializers.EmailField(required=allauth_account_settings.EMAIL_REQUIRED)
297+
email = serializers.EmailField(required=_signup_field_required('email'))

0 commit comments

Comments
 (0)