wie verwende ich ensure_csrf_cookie?

Ich bin neu in python. Ebenfalls neu in Django. Ich bin versucht zu machen eine AJAX-Anforderung und den Anweisungen gefolgt hier. auf den ersten, das Ergebnis abrufen zu können, csrf, cookie war immer null, so fand ich eine decorator-Methode genannt ensure_csrf_cookie. Das problem ist, es bittet für ein Blick, und ich habe keine Ahnung, was zu übergebende Ansicht und wo kann ich einen Hinweis darauf. Der code ist ziemlich einfach:

from django.shortcuts import render_to_response
from django.core.context_processors import csrf
from django.views.decorators.csrf import ensure_csrf_cookie

def csv_to_xform(csv, template):
    return render_to_response(template, { "data": "it works!" })

Muss ich eine Klasse verwenden based view? wenn ja, gibt es einen besseren Weg, um das cookie? Ich möchte nicht, um die beschriebene Methode hier, weil ich nicht wollen, um manuell zu behandeln, der Wert.

Der rest des Codes ist wie folgt:

sandbox.html:

<!doctype html>

<html>
    <head>
        <title>Sandbox</title>

        <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
        <script src="/static/js/csrf.js"></script>

        <script type="text/javascript">
            $(function () {
                $('#send-csv-btn').click(function () {
                    $.post('/csv', { 
                        data: '1, 2, 3',
                        success: function (response) {
                            console.debug(response);
                        },
                        error: function (response) {
                            console.debug(response);
                        }
                    });
                });
            });
        </script>
    </head>

    <body>
        <form>
            {% csrf_token %}
            <input type="button" id="send-csv-btn" />
        </form>
    </body>
</html>

urls.py:

urlpatterns = patterns('',
    url(r'^$', 'dkobo.formbuilder.views.main', name='fb'),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^csv$', 'dkobo.formbuilder.views.csv_to_xform', { "template": "sandbox-stub.html" }),
    url(r'^sandbox$', 'dkobo.formbuilder.views.sandbox')
)

settings.py:

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
Schreibe einen Kommentar