Django

Django ImageField 저장 안 될 때 enctype

끈끈 2023. 4. 13. 09:29

패키지 설치

pip install Pillow

 

 

프로젝트 settings.py:

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

 

프로젝트 urls.py:

from django.conf.urls.static import static
from django.conf import settings

urlpatterns = [
    path('admin/', admin.site.urls),

]

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

 

앱 models.py:

image = models.ImageField(upload_to='', null=True, blank=True)

 

앱 views.py:

image = request.FILES.get('image')

 

html:

<!-- 포스트 이미지를 가져오는 곳-->
<img class="card-img-top" src="{{ post.image.url }}" alt="..."/>

 

django admin
db.sqlite3

 

등록한 이미지 파일의 경로와 이름은 잘 들어오는데

 

파일은 저장되지 않는 문제 발생!!!!

 


 

create.html:

<form class="form-area" method="post" action="{% url 'post_create' %}" enctype="multipart/form-data">

 

form 태그의 각 속성은 아래와 같다

  • name : form의 이름
  • method : 전송 방식(default는 GET)
  • action : 전송 목적지
  • autocomplete : 자동 완성
  • enctype : 전송되는 데이터의 형식(전송방식이 POST인 경우)

 

아무리 해도 들어가지 않더니

 

enctype="multipart/form-data"  <<<추가하니 바로 해결! 얄루

 

media 폴더 생성