1
resposta

Criação de usuário com django rest

Bom, eu quero fazer um endpoint no django rest framework para criar um usuário, mas estou com problemas para implementar o campo de confirmação de senha. espero que possam me ajudar.

1 resposta

Olá Carlos! Tudo bem?

Para implementar um campo de confirmação de senha ao criar um usuário usando o Django Rest Framework, você pode seguir os seguintes passos:

1 - Primeiro, certifique-se de que você tem um serializer para a criação de usuários. Você pode criar um serializer personalizado para isso, que inclua o campo de confirmação de senha. Por exemplo:

from rest_framework import serializers
from django.contrib.auth.models import User

class UserSerializer(serializers.ModelSerializer):
    confirm_password = serializers.CharField(write_only=True)

    class Meta:
        model = User
        fields = ['username', 'password', 'confirm_password']
        extra_kwargs = {
            'password': {'write_only': True},
        }

    def create(self, validated_data):
        password = validated_data.pop('password')
        confirm_password = validated_data.pop('confirm_password')
        if password != confirm_password:
            raise serializers.ValidationError("As senhas não coincidem.")
        user = User(**validated_data)
        user.set_password(password)
        user.save()
        return user

2 - Em seguida, você precisa criar uma view para o endpoint de criação de usuário. Você pode usar a classe CreateAPIView do Django Rest Framework para isso. Por exemplo:

from rest_framework.generics import CreateAPIView
from .serializers import UserSerializer

class CreateUserView(CreateAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer

3 - Por fim, você precisa adicionar a URL correspondente ao seu arquivo de urls. Por exemplo:

from django.urls import path
from .views import CreateUserView

urlpatterns = [
    path('users/create/', CreateUserView.as_view(), name='create_user'),
]

Agora você pode fazer uma solicitação POST para /users/create/ com os campos username, password e confirm_password para criar um novo usuário. Certifique-se de que o valor do campo confirm_password seja igual ao valor do campo password.

Espero que isso ajude! Se tiver mais alguma dúvida, estarei à disposição.

Grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.