Lỗi tại địa điểm http://127.0.0.1:8000/fileupload/form.pyDjango: Mã thông báo CSRF bị thiếu hoặc không chính xác
Tôi có phiên bản 1.3 của django. Tôi đã cố gắng xác định localhost: 8000 như đã nêu trong câu hỏi của người khác nhưng điều này không làm việc cho tôi. Tôi đang cố gắng để có một hình thức tải lên tập tin nhưng tôi nhận được một lỗi rằng form.py không có mã thông báo CSRF.
form.py:
class UploadFileForm(forms.Form):
title = forms.CharField(max_length=50)
file = forms.FileField()
views.py:
def upload_file(request):
c = {}
c.update(csrf(request))
if (not request.user.is_authenticated()) or (request.user == None):
return HttpResponseRedirect("/?error=11")
if request.method == 'POST':
form = c['UploadFileForm'] = UploadFileForm(request.POST, request.FILES, c, context_instance=RequestContext(request))
if c['UploadFileForm'].is_valid():
handle_uploaded_file(request.FILES['file'])
return HttpResponseRedirect('/success/url/')
else:
form = c['UploadFileForm'] = UploadFileForm()
return render_to_response('fileupload/upload.html', {'form': c['UploadFileForm']})
upload.html:
{% block main_content %}
<form action="fileupload/form.py" enctype="multipart/form-data" method="POST">
{% csrf_token %}
<table>
<tr><td>Title:</td><td><input type="text" name="title" /></td></tr>
<tr><td>File:</td><td><input type="file" name="file" /></td></tr>
</table>
<input type="submit" value="Submit" class = "float_right button_input" />
</form>
{% endblock main_content %}
Tôi rất bối rối xin vui lòng cho tôi biết một số điều để thử. Cảm ơn
Bạn có đã đã sử dụng '{% csrf_token%}' trong mẫu của bạn, vì vậy việc này sẽ hoạt động. –
với việc bổ sung các RequestContext tôi nhận được một loại lỗi __init __() đã nhận được một đối số từ khóa bất ngờ 'context_instance' – user1072646
Cảm ơn bạn, tôi chỉ figured it out. Nó đã được thêm RequestContext (yêu cầu) như bạn đã nói và loại bỏ c và context_instance = từ câu lệnh if. Nếu bạn thay đổi câu trả lời của bạn để bao gồm rằng tôi sẽ đánh dấu nó đúng. – user1072646