繁体   English   中英

Django返回“ 403禁止访问电子邮件”视图

[英]Django Returns 403 Forbidden for Email view

我正在尝试在Django中创建一个简单的联系表单,但遇到了403 Forbidden错误。 如何确定Django的403错误? 我重定向到的页面似乎没有解释任何内容:

失败原因:

 CSRF token missing or incorrect. 

我正在遵循djangobook.com的指南第7章:表格,并且正在制作联系表格

这几乎就是我的联系视图所拥有的:

def contact(request):
    errors = []
    if request.method == 'POST':
        if not request.POST.get('subject', ''):
            errors.append('Enter a subject.')
        if not request.POST.get('message', ''):
            errors.append('Enter a message.')
        if request.POST.get('email') and '@' not in request.POST['email']:
            errors.append('Enter a valid e-mail address.')
        if not errors:
            send_mail(
                request.POST['subject'],
                request.POST['message'],
                request.POST.get('email', 'cinicraftmatt@gmail.com'),
                ['cinicraftmatt@gmail.com'],
            )
            return HttpResponseRedirect('/contact/thanks/')
    return render(request, 'contact_form.html',
        {'errors': errors})

有人怎么能找出这个问题并以很少的解释解决它?

您很可能会在html模板中的表单标签之间错过{% csrf_token %}

原来这本书几乎没有提到您需要将smtp信息添加到settings.py文件中

这是使用gmail的示例:

EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'YourGmail@gmail.com'
EMAIL_HOST_PASSWORD = 'password123'
DEFAULT_FROM_EMAIL = 'replyService@gmail.com'
DEFAULT_TO_EMAIL = 'Optional@gmail.com'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM