change user register api
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
# Generated by Django 5.2 on 2025-08-30 11:53
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('accounts', '0003_user_passport_id_user_pnfl_alter_user_id'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='passport_id',
|
||||
field=models.CharField(blank=True, max_length=20, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='pnfl',
|
||||
field=models.CharField(blank=True, max_length=20, null=True),
|
||||
),
|
||||
]
|
||||
@@ -8,8 +8,8 @@ from core.apps.accounts.manager import UserManager
|
||||
class User(AbstractUser, BaseModel):
|
||||
full_name = models.CharField(max_length=200)
|
||||
email = models.EmailField(unique=True)
|
||||
passport_id = models.CharField(max_length=20, null=True)
|
||||
pnfl = models.CharField(max_length=20, null=True)
|
||||
passport_id = models.CharField(max_length=20, null=True, blank=True)
|
||||
pnfl = models.CharField(max_length=20, null=True, blank=True)
|
||||
|
||||
first_name = None
|
||||
last_name = None
|
||||
|
||||
@@ -7,17 +7,23 @@ from core.apps.accounts.cache import get_user_credentials, get_user_confirmation
|
||||
|
||||
|
||||
class RegisterSerializer(serializers.Serializer):
|
||||
passport_id = serializers.CharField()
|
||||
pnfl = serializers.CharField()
|
||||
passport_id = serializers.CharField(required=False)
|
||||
pnfl = serializers.CharField(required=False)
|
||||
email = serializers.EmailField()
|
||||
password = serializers.CharField()
|
||||
|
||||
def validate_email(self, value):
|
||||
if User.objects.filter(email=value).exists():
|
||||
raise serializers.ValidationError("User with this email already exists")
|
||||
user_data = get_user_credentials(email=value)
|
||||
if user_data:
|
||||
raise serializers.ValidationError("User with this email already exists")
|
||||
request = self.context.get('request')
|
||||
lang = request.META.get('HTTP_ACCEPT_LANGUAGE', 'en').split(",")[0]
|
||||
|
||||
messages = {
|
||||
'en': "User with this email already exists",
|
||||
'ru': "Пользователь с таким адресом электронной почты уже существует",
|
||||
'uz': "Bu email bilan foydalanuvchi allaqachon mavjud",
|
||||
}
|
||||
msg = messages.get(lang, messages['en'])
|
||||
raise serializers.ValidationError(msg)
|
||||
return value
|
||||
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ class RegisterApiView(generics.GenericAPIView):
|
||||
queryset = models.User.objects.all()
|
||||
|
||||
def post(self, request):
|
||||
serializer = self.serializer_class(data=request.data)
|
||||
serializer = self.serializer_class(data=request.data, context={"request": request})
|
||||
if serializer.is_valid(raise_exception=True):
|
||||
data = serializer.validated_data
|
||||
email = data['email']
|
||||
|
||||
Reference in New Issue
Block a user