2013-02-27 141 views
0

我遵循关于如何使用CSRF令牌的django文档。 (https://docs.djangoproject.com/en/dev/ref/contrib/csrf/如何正确使用Django CSRF令牌?

我明白前两个步骤,但我对步骤3感到困惑。在步骤3中,有两个选项。

选项1:UseRequestContext。

选项2:手动生成CSRF令牌并将其添加到模板上下文中。

如果我想使用选项1并从基础视图类实现视图类,是否需要额外生成令牌?

谢谢。

+0

当您在表单中使用csrf_token它已经了解。你不必把它放在你的视图函数中。该视图教程是另一种使用csrf的方式。 – catherine 2013-02-27 03:58:52

+0

因此,如果我使用模板中的csrf_token和视图的csrf_protect装饰器,我应该很好走? – 2013-02-27 04:02:56

+0

仅在模板中使用csrf标记。 django会识别它 – catherine 2013-02-27 04:05:44

回答

7

设置

MIDDLEWARE_CLASSES = [ 
    //other middlewares 

    'django.middleware.csrf.CsrfViewMiddleware', 

] 

模板

<form method="post"> 
    {% csrf_token %} 
    ...... 
</form> 

意见

def view_name(request): 
    if request.method == 'POST': 
     .....