小编use*_*646的帖子

Django:CSRF令牌丢失或不正确

错误位于http://127.0.0.1:8000/fileupload/form.py

我有django的1.3版本.我已尝试指定localhost:8000,如其他人的问题所述,但这对我不起作用.我试图有一个文件上传表单,但我收到一个错误,form.py没有CSRF令牌.

form.py:

class UploadFileForm(forms.Form):

    title = forms.CharField(max_length=50)
    file  = forms.FileField()
Run Code Online (Sandbox Code Playgroud)

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']})
Run Code Online (Sandbox Code Playgroud)

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" …
Run Code Online (Sandbox Code Playgroud)

python django django-views

19
推荐指数
2
解决办法
7万
查看次数

标签 统计

django ×1

django-views ×1

python ×1