我是 Django 的初学者。我想在单击按钮时发送电子邮件。按钮是删除按钮。当按下删除按钮时,我想发送一封电子邮件到receiver@gmail.com。 根据以下代码,页面加载时发送电子邮件。还有一个内部服务器错误。你能帮我更改点击按钮时发送的电子邮件吗。
views.py
class delete_profile(View):
print("nothing")
def post(self, request, *args, **kwargs):
print("nothing")
template = loader.get_template("frontend/subscription-start.html")
email_content = "deletion confirmation"
send_mail(
'No Dowry Marriage - Subscription',
email_content,
'sender@gmail.com',
['reciever@gmail.com'],
html_message=email_content,
fail_silently=False
)
urls.py
path('delete_profile', csrf_exempt(delete_profile.as_view()), name='delete_profile')
user_profile.html
<script>
function delete_profile1() {
var csrftoken = getCookie('csrftoken');
console.log("rhgrjhrj")
$.ajax({
type: 'POST',
url: '{% url "delete_profile" %}',
data: {
csrfmiddlewaretoken: csrftoken
},
success: function () {
toastr.info('Preference Updated Successfully')
}
});
}
</script>
提前致谢!!!!
答案 0 :(得分:0)
首先在 views.py 中导入 JsonResponse
和 render
:
from django.http import JsonResponse
from django.shortcuts import render
更改课程后:
class delete_profile(View):
def get(self, request, *args, **kwargs):
# handle the get request
return render(request, 'frontend/subscription-start.html')
def post(self, request, *args, **kwargs):
email_content = "deletion confirmation"
send_mail(
'No Dowry Marriage - Subscription',
email_content,
'sender@gmail.com',
['reciever@gmail.com'],
html_message=email_content,
fail_silently=False
)
return JsonResponse({'some_text': some_text})
# or
# return render(request, 'some_location/some_html_file')
也许更改您的 ajax POST 请求标头:
headers: {
'X-CSRFToken': csrftoken
}