проверка электронной почты в django rest Framework - PullRequest
0 голосов
/ 11 февраля 2019

Я закончил с регистрацией, как вы можете видеть.Теперь я хочу отправить подтверждение по электронной почте, чтобы пользователи могли подтвердить.Поэтому, когда пользователь регистрируется, он / она получает письмо для подтверждения.

как мне отправить подтверждение по электронной почте, используя "ListCreateAPIView"?

Нужен ли сторонний пакет?

Может кто-нибудь мне помочь?Спасибо

Вот мой взгляд

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


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

Мой serializer.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')

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Вы можете попробовать django-djoser ссылка .

0 голосов
/ 11 февраля 2019
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,)

отправьте электронное письмо после создания объекта

для создания ссылки и проверки следуйте этому руководству doc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...