Я слежу за учебником по созданию проекта Django. Частью проекта является возможность загрузить изображение в каталог test cdn. Вот как сейчас выглядит моя форма:
<form method='POST' action="." enctype='multipart/form-data'> {% csrf_token %}
{{ form.as_p }}
<button type="submit">Send</button>
</form>
Метод и enctype очень четко определены.
Я также установил свои settings.py
STATIC_URL = '/static/'
LOCAL_STATIC_CDN_PATH = os.path.join(os.path.dirname(BASE_DIR), 'static_cdn_test')
STATIC_ROOT = os.path.join(LOCAL_STATIC_CDN_PATH, 'static')
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'staticfiles')
]
MEDIA_ROOT = os.path.join(LOCAL_STATIC_CDN_PATH, 'media')
MEDIA_URL = '/media/'
настроить файлы для получения в представлении:
form = BlogPostModelForm(request.POST or None, request.FILES or None)
настроить модель, использовать ImageField:
image = models.ImageField(upload_to='image/', blank=True, null=True)
и шаблоны URL:
if settings.DEBUG:
# test mode
from django.conf.urls.static import static
# display images/files saved in the test cdn
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Но даже при всем этом консоль сообщает мне:
Форма содержит ввод файла, но в форме отсутствуют методы = POST и enctype = multipart / form-data. Файл не будет отправлен.
Это руководство на случай, если оно поможет https://www.youtube.com/watch?v=-oQvMHpKkms&list=PLM39hJgCef42hVok8ZRRE4LpLD-5bOxBh&index=20&t=13385s рассматриваемая часть начинается в 3:48:00.