Здравствуйте, я работаю над формой контакта Django, которая позволяет пользователю отправить электронное письмо, ранее электронное письмо отправлялось, но страница перезагружалась, поэтому решили использовать ajax
Вот мой javascript код, ajax код
$('.menu').click(function(){
$('.toggle').toggleClass('active');
})
$(document).on('submit', '#contact_form', function(e){
e.preventDefault();
$.ajax({
type:'POST',
url:'/contact',
data:{
from_email:$('#id_from_email').val(),
subject:$('#div_id_subject').val(),
message:$('#div_id_message').val(),
csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val()
},
success:function(){
alert("Message sent succsessfuly")
}
})
})
});
Это мои взгляды, получение данных и отправка электронной почты
if request.method == 'GET':
form = ContactForm()
else:
form = ContactForm(request.POST or None)
if form.is_valid():
subject = form.cleaned_data['subject']
from_email = form.cleaned_data['from_email']
message = form.cleaned_data['message']
reply_to=[from_email]
msg_mail = str(message) + " " + str(from_email)
try:
send_mail(
subject,
message,
from_email,
['kimkidati@gmail.com'],
reply_to,
)
except BadHeaderError:
return HttpResponse('Invalid header found.')
messages.add_message(request, messages.SUCCESS, 'Email sent successfully.')
return render(request, "contact.html", {'form': form,})
Мой шаблон, вот моя форма django, где я собираю сообщение пользователя и электронную почту
<h1>Contact Us</h1>
{% if message %}
{% for message in messages %}
<p class="text-black mt-5 pt-5">{{message}}</p>
{% endfor %}
{% endif %}
<form id="contact_form" method="POST" data-url='/contact'>
{% csrf_token %}
<p>{{form|crispy}}</p>
<div class="form-actions mb-5">
<button class="btn btn-primary btn-sm" type="submit">Send Message</button>
</div>
</form>
</div> ```
**Also had an issue with the email which does not specify who the email is from, instead, it says from me**