Как восстановить контактную форму?
У меня есть сценарий от старого дизайна до контактной формы, и я не мог работать в течение нескольких дней. Я ничего не знаю из Django Rest Framework и API. Может ли кто-нибудь помочь мне сделать этот скрипт без капчи? В любом случае капчу нужно удалить из этого скрипта. Проблема в том, что после заполнения и отправки контактной формы я не получаю сообщение на адрес электронной почты.
views.py
from django.utils.translation import ugettext_lazy as _
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from django.conf import settings
from django.core.mail import send_mail
from django.template.loader import render_to_string
from visualcaptcha import Captcha, Session
import os
class ContactView(APIView):
u"""Widok wysyłający wiadomość email"""
def post(self, request):
u"""Metoda wysyłająca wiadomość email.
Parameters
----------
request : rest_framework.request.Request
Obiekt żądania HTTP
Returns
-------
rest_framework.response.Response
Obiekt odpowiedzi HTTP.
"""
assetsPath = os.path.join(settings.BASE_DIR,
r'visualcaptcha', r'assets')
visualCaptcha = Captcha(Session(request.session), assetsPath)
frontendData = visualCaptcha.getFrontendData()
imageField = request.data.pop(frontendData['imageFieldName'], None)
audioField = request.data.pop(frontendData['audioFieldName'], None)
captcha_valid = False
if imageField is not None:
captcha_valid = visualCaptcha.validateImage(imageField)
if audioField is not None:
captcha_valid = visualCaptcha.validateAudio(audioField)
if not captcha_valid:
print("hakuna matata")
return Response({
'status': 'Bad request',
'message': (_('The captcha sent was not valid')),
'errors': {
'invalid_captcha': 'The captcha sent was not valid'
}
}, status=status.HTTP_400_BAD_REQUEST)
try:
subject = (request.data['subject'])
message = (
u'''coins-sell.pl wiadomość od użytkownika %s
email: %s
wiadomość:
%s''') % (
request.data['name'], request.data['email'],
request.data['message'])
from_email = request.data['email']
recipient_list = ['kontakt@coins-sell.pl']
html_message = render_to_string(
'emails/contactEmail.html',
{'name': request.data['name'],
'email': request.data['email'],
'message': request.data['message']
})
send_mail(
subject=subject,
message=message,
from_email=from_email,
recipient_list=recipient_list,
html_message=html_message
)
return Response({
'status': 'OK',
'message': (
_('Email was sent succesfully'))
}, status=status.HTTP_200_OK)
except Exception as e:
return Response({
'status': 'Bad request',
'message': (
_('Message could not be sent')),
'errors': {'exception': str(e)}
}, status=status.HTTP_400_BAD_REQUEST)
form.html
<form name="vm.contact_form">
<label for="contact__name">Imię</label>
<input type="text" name="contact_name" id="contact__name">
<strong>Pole wymagane.</strong><br><br>
<label for="contact__email">Email</label>
<input type="email" name="contact_email" id="contact__email" required>
<strong>Pole wymagane.</strong><br><br>
<!-- <label for="contact__subject">Temat</label>
<select name="contact_subject" id="contact__subject" required></select>
<strong>Pole wymagane.</strong><br><br> !-->
<label for="contact__message">Wiadomość</label>
<textarea name="contact_message" id="contact__message" required></textarea>
<strong>Pole wymagane.</strong><br><br>
<button type="submit">Wyślij</button>
</form>
settings.py
EMAIL_USE_SSL = True
EMAIL_HOST = 'mail0.mydevil.net'
EMAIL_PORT = 465
EMAIL_HOST_USER = '************'
EMAIL_HOST_PASSWORD = 'my_password'
DEFAULT_FROM_EMAIL = 'example@example.com'
MANAGERS = (('George Example', 'example@example.com'),)
Пожалуйста, будьте терпеливы и извините за мой плохой английский и отсутствие знаний, потому что я студент.