0
我想在我的視圖上傳一個CSV文件。我包括csrf令牌,但是當我嘗試上傳文件時,我直接採取403錯誤。這是我的觀點和模板:另一個CRSF令牌錯誤,而在django文件uploding
我的表格HTML
<div class="file-boxes">
<form enctype="multipart/form-data" action="" encoding="multipart/form-data" id="upload-csv" method="post">
{% csrf_token %}
{{form.csv}}
<!-- <input class="input-file" id="fileInput" type="file" size="14" name="csv_upload" onchange="this.form.submit()"> -->
</form>
</div>
我的形式
class DeliveryDataForm(forms.Form):
csv = forms.FileField(widget=forms.ClearableFileInput(attrs={'size:':14,'onchange':'this.form.submit()'}))
我看來
def upload_data(request):
...
form = DeliveryDataForm()
if request.method == "POST":
import pdb
pdb.stack_trace()
form = DeliveryDataForm(request.POST, request.FILES)
return HttpResponse('asd')
return render_to_response(template,context)
我知道在視圖中有一些缺失的部分,但奇怪的是,它從來沒有進入if部分。任何想法 ?
即使您將表單渲染爲「{{form}}」而不是「{{form.csv}}」,是否會發生這種情況? – yedpodtrzitko 2012-03-07 10:41:30
是的,我也嘗試{{form}},仍然得到錯誤 – iva123 2012-03-07 10:44:26
並且您是否閱讀錯誤頁面或[文檔](https://docs.djangoproject.com/en/1.3/ref/contrib/ csrf /),它清楚地表明您需要使用RequestContext才能獲得csrf密鑰? – 2012-03-07 10:48:50