2012-02-10 1 views
0

파일을 게시하려고 할 때 문제가 있습니다. Django-nonrel을 사용하여 GAE에 파일을 게시 할 때 CSRF 오류가 발생했습니다.

하지만 GAE에

, 난 단지 만 결코 파일을 텍스트를 게시 할 수 있습니다

내가 dev에 서버에있을 때 그것은 잘 작동. 내가 적절한 미들웨어

# Media middleware has to come first 
'mediagenerator.middleware.MediaMiddleware', 
# This loads the index definitions, so it has to come first 
'autoload.middleware.AutoloadMiddleware', 
'django.middleware.cache.UpdateCacheMiddleware',# the "update" middleware must be first 
'django.contrib.sessions.middleware.SessionMiddleware', # Session middleware needs to come before Auth middleware, because authentication is handled with sessions. 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.csrf.middleware.CsrfViewMiddleware',# It should come before any view middleware that assume that CSRF attacks have been dealt with. 
'django.middleware.csrf.CsrfResponseMiddleware', 
'django.middleware.common.CommonMiddleware', 
'django.middleware.cache.FetchFromCacheMiddleware',# the "fetch" middleware must be last 
'google.appengine.ext.appstats.recording.AppStatsDjangoMiddleware', 

내가 장고 일부 CSRF 토큰 "csrfmiddlewaretoken"라는 숨겨진 입력을 추가 참조를 포함했다고 생각

<form id="file" method="post" enctype="multipart/form-data" encoding="multipart/form-data" action="{{ upload_url }}"> 
{% for field in upload_form %} 
    <div class="field"> 
     {{ field.label_tag }} 
      <div class="input"> 
       {{ field }} {{ field.help_text }} 
      </div> 
      {% if field.errors %} 
       <ul class="errors"> 
        {% for error in field.errors %} 
         <li>{{ error|escape }}</li> 
        {% endfor %} 
       </ul> 
      {% endif %} 
    </div> 
{% endfor %} 
<input class="submit" type="submit" value="Upload"/> 
</form> 

: 아래

은 내가 사용하고있는 형태이다 dev 서버 및 GAE의 값.

그러나 파일 업로드를 시도 할 때마다 csrf 오류 메시지가 나타납니다.

나는 캐싱 미들웨어를 포함시킨 직후부터 캐싱이 시작 되었기 때문에 캐싱이이 문제를 일으킨 것으로 생각됩니다.

지금 나는 내 middlewares를 재정렬함으로써이 문제를 해결하려고하고 있지만 지금까지는 행운이 없습니다.

누구든지 전에 내 문제에 직면 했습니까?

답변

0

양식에 {% csrf_token %} 태그를 포함하십시오.

+0

이 경우에는 적용되지 않습니다. CsrfResponseMiddleware csrf 토큰을 자동으로 추가합니다. – taelimoh

관련 문제