Django Restframework - Как отправить ContactMe Email через SMTP gmail без использования моделей или форм, и при этом получить валидацию?
На моем сайте, который я создаю, у меня есть простая форма:
составьте мне форму с моего сайта
Я использую ReactJS для создания фронтенда, а в качестве бэкенда я использую Django Restframework.
В моем views.py я получил следующий код:
class SendEmailView(APIView):
def post(self,request):
subject = request.data['subject']
message = request.data['message']
email = request.data['emailAddress']
if len(subject)<5:
raise ValidationError('Subject must be at least 5 characters long.')
if len(message)<10:
raise ValidationError('Message must be at least 10 characters long.')
try:
send_mail(subject=subject, message=message, from_email=settings.EMAIL_HOST_USER, recipient_list=[email], fail_silently=False)
return Response({"success":True})
except Exception as e:
print('Exception: ', e.message)
return Response({'Exception: ', str(e)},status=status.HTTP_400_BAD_REQUEST)
Я просто немного поэкспериментировал. Но в основном я получаю тему, сообщение и email из POST-запроса, а затем отправляю письмо, которое отлично работает. Но я не могу заставить работать то, что представление отправляет ValidationErrors как json в мое фронтенд-приложение ReactJs.
Например, если тема и / или сообщение слишком короткие... или если это не действительный email. Я хочу отправлять обратно соответствующие ошибки в виде (или что-то подобное) {'errors':[{email: "not a valid email"}, {"subject": "The subject must contain at least 5 letters. Вы указали только 3."}]}.
Дело в том, что я не использую здесь Django forms или Django Models... если бы это было так, то были бы тонны руководств и это не было бы проблемой.
Другими словами, я использую Django Restframework, поэтому я не использую валидацию форм и у меня нет модели, потому что я не хочу ничего сохранять в базе данных.
Нужно ли мне писать собственную логику валидации и т.д.?
Большое спасибо!