Я пытался реализовать загрузку изображения для изменения аватара для отдельных пользователей. Проблема, которую я имею сейчас, заключается в том, что она никогда не загружается в папку. Он работает от администратора, но он не работает на шаблоне я создалImageField не загружается
views.py
if 'avatar_upload' in request.POST:
avatar_form = UserAvatarForm(request.POST, request.FILES, instance=request.user.get_profile())
if avatar_form.is_valid():
avatar_form.save()
return HttpResponse(request.POST['avatar'])
return HttpResponse("Failed")
Я изменил код для просмотра результатов. Я получаю имя файла в POST
. Но у меня ничего нет в request.FILES
. Поэтому я предполагаю, что это проблема, и я пока не понял, что может быть проблемой. Или это может быть проблемой в другом месте?
шаблон *
<form action="" method="post" enctype="multipart/form-data">
{% csrf_token %}
{% for item in avatar_form %}<p>{{ item.label }}: {{ item }}</p>
{% endfor %}
<input type="submit" value="Upload avatar" name="avatar_upload">
</form>
Я тоже пробовал с ним. И он по-прежнему не работает:/ – starcorn
@starcorn, это странно, перезагрузите сервер и обновите страницу перед загрузкой? Получение имени файла в 'request.POST' вместо' request.FILES' обычно вызвано отсутствием 'multipart/form-data'. – okm
Кажется, сейчас работает, но вместо этого получаю ошибку «InMemoryUploadedFile». Я думал, что Django будет обрабатывать загрузку файла в фоновом режиме. Но мне кажется, что я должен написать код, чтобы сохранить его «MEDIA_FOLDER», а также обновить URL-адрес аватара для пользователя? – starcorn