【问题标题】:Forbidden (CSRF token missing or incorrect.) Django + AngularJs禁止(CSRF 令牌丢失或不正确。)Django + AngularJs
【发布时间】:2017-01-13 06:48:10
【问题描述】:

当我尝试在我的 django 框架中渲染到我的第二页时,我收到以下错误。我认为我的 url 页面和 views.py 有问题,但无法弄清楚,没有任何进展..

Forbidden (CSRF token missing or incorrect.): /renderbonds
[06/Sep/2016 00:21:55] "POST /renderbonds HTTP/1.1" 403 2502

这是我的 html/django 表单

<form action="{% url 'renderbonds'%}" method="post" >
                <input type="submit" value="calculate bonds" class='button expand radius'/>
            </form>

Views.py python 文件:

def home(request):
    tmpl_vars = {
        'all_posts': Post.objects.reverse(),
        'form': PostForm()
    }
    return render(request, 'pricing/bonds.html', tmpl_vars)

def renderbonds(request):
    """render shortcut : http://stackoverflow.com/questions/10388033/csrf-verification-failed-request-aborted"""
    if request.method == 'POST':
        post_text = request.POST.get('the_post')
        response_data = {}

        post = Post(text=post_text, author=request.user)
        post.save()

        """DATA MEEGEVEN"""
        response_data['year'] = post.year
        response_data['cashflow'] = post.cashflow

        return HttpResponse(
            json.dumps(response_data),
            content_type="application/json"
        )
    else:
        tmpl_vars = {
            'all_posts': Post.objects.reverse(),
            'form': PostForm()
        }
        return render(request,'pricing/bonds.html', tmpl_vars)

我的网址:

urlpatterns = [
    url(r'^$', views.calc,name='calc'),
    url(r'^$', views.home,'home'),
    url(r'^create_post/$',views.create_post,'create_post'),
    url(r'^renderbonds', views.home, name='home'),
    url(r'^/renderbonds', views.home, name='home'),
    url(r'^renderbonds/', views.home, name='home')

]

【问题讨论】:

  • 我看到你在 cmets 里问了一个问题。请参阅我更新的答案以了解放置标签的位置。

标签: python angularjs django


【解决方案1】:

问题不在于您的网址或视图,而在于您的模板。尝试在模板中的&lt;form&gt;&lt;/form&gt; 标签下添加嵌套的{% csrf_token %}

<form action="{% url 'renderbonds'%}" method="post" >
    <input type="submit" value="calculate bonds" class='button expand radius'/>
    {% csrf_token %}
</form>

请参阅the docs 了解更多详情。

【讨论】:

    猜你喜欢
    • 2019-11-24
    • 2021-01-08
    • 2015-10-15
    • 2020-12-24
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    • 2016-05-08
    • 2019-02-21
    相关资源
    最近更新 更多