У меня проблема при попытке опубликовать файл.
Работает нормально, когда я на dev сервере,
но в GAE я могу публиковать только текст, но не файл.
Ниже приведена форма, которую я использую:
<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>
Я считаю, что я включил соответствующее промежуточное ПО
# 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',
Я вижу, что django добавляет скрытый ввод с именем "csrfmiddlewaretoken" с некоторым значением токена csrf на сервере dev, а также на GAE.
Однако, когда я пытаюсь загрузить файл, он выдает мне сообщение об ошибке csrf.
Я подозреваю, что кеширование вызывает эту проблему, поскольку оно началось вскоре после того, как я включил промежуточное программное обеспечение для кэширования.
Пока что я пытаюсь решить эту проблему, переупорядочив промежуточное программное обеспечение, но пока не получилось.
Кто-нибудь сталкивался с моей проблемой раньше?