使用通用视图的 django rest 框架电子邮件验证

tec*_*ack 6 python email django django-rest-framework

如您所见,我已完成注册。现在我想发送电子邮件验证,以便用户确认。因此,一旦用户注册,他/她就会收到一封确认邮件。

如何使用“ListCreateAPIView”发送电子邮件验证?

我需要第三方包吗?

有人可以帮我吗?谢谢

这是我的观点

class UserList(generics.ListCreateAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer


class UserDetail(generics.RetrieveAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer

Run Code Online (Sandbox Code Playgroud)

我的序列化程序.py

class UserSerializer(serializers.ModelSerializer):
    email = serializers.EmailField(required=True, validators=[UniqueValidator(queryset=User.objects.all())])
    username = serializers.CharField(required=True, validators=[UniqueValidator(queryset=User.objects.all())])
    password = serializers.CharField(min_length=8, style={'input_type': 'password', 'placeholder': 'Password'})


    def create(self, validated_data):
        user = User.objects.create_user(validated_data['username'], validated_data['email'], validated_data['password'])
        return user

    class Meta:
        model = User
        fields = ('id', 'username', 'email', 'password')

Run Code Online (Sandbox Code Playgroud)

par*_*han 1

from django.core.mail import send_mail
class UserList(generics.ListCreateAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer
    def perform_create(self, serializer):
        created_object = serializer.save()
        send_mail('Subject here','Here is the message.','from@example.com', 
            [created_object.email],  fail_silently=False,)
Run Code Online (Sandbox Code Playgroud)

创建对象后发送电子邮件

要创建链接并验证,请遵循本教程文档