Django和ajax图像文件上载错误和csrf

Django和ajax图像文件上载错误和csrf,ajax,django,Ajax,Django,我尝试将图像上传到Django 1.4 我的第一个问题是为什么我得到一个空页面,firebug告诉我有一个错误: 在我的html模板中: $ is not defined element: $('#file-uploader')[0], 这是我的整个html文件: 我的第二个问题是为什么ajax代码使用{{csrf_token}而不是{%csrf_token%}。但是如果我使用{%csrf_token%},我会得到firebug错误: missing } afte

我尝试将图像上传到Django 1.4

我的第一个问题是为什么我得到一个空页面,firebug告诉我有一个错误:

在我的html模板中:


$ is not defined
element: $('#file-uploader')[0],            
这是我的整个html文件:

我的第二个问题是为什么ajax代码使用{{csrf_token}而不是{%csrf_token%}。但是如果我使用{%csrf_token%},我会得到firebug错误:


missing } after property list

'csrf_token': '<div style='display:none'><input type='hidden' name='csrfmiddlewaretoken' value='Cx0zFFak6OLgrHiAnFa3k4BPDmn4BgoT' /></div>',
编辑:我将元素更改为document.getElementById'file-uploader',它似乎可以工作,所以我想我已经解决了我的第一个问题。

对于第一个问题,$是由jQuery库引入的,您需要在使用前加载它。或者使用document.getElementById'file-uploader',它相当于$'file-uploader'[0]

对于第二个问题,javascript行需要一个csrf令牌,它可以通过{{csrf_token}引入,而不是一个div标记,其中包含一个输入字段w/csrf token作为它的值,{%csrf_token%}就是这样做的

要使{csrf_token}}正常工作,请检查第3步,将'django.core.context_processors.csrf'添加到模板_context_processors中,并在视图中使用RequestContext