파일인 경우는 request.FILES 를 통해 파일이 전달됩니당. request.POST 가 아니라 request.FILES['image'] 와 같이 해보셔용
+0
2021년 5월 20일
감사합니다!!
+0
2021년 5월 20일
랑이님..ㅠㅠ 모델폼(https://www.codeit.kr/learn/courses/django-web-development/4132) 으로 이미지 업로드하는법 질문할려고 costory에서 이미지를 모델을 통해서 업로드를 했는데 왜 안되는 걸까요..ㅠㅠ (저번에 해결 했던 문제입니다.) 뭔가를 잘못한게 있을까요? 다시봐도 문제를 모르겠습니다.. . . settings.py 에 `MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media')`를 추가했습니다.
``` #models.py
from django.db import models
class Post(models.Model): # 글의 제목, 내용, 작성일, 마지막 수정일 title = models.CharField(max_length=50) content = models.TextField() image = models.ImageField(upload_to='images/') dt_created = models.DateField(verbose_name='Date Created', auto_now_add=True) dt_modified = models.DateTimeField(verbose_name="Date Modified", auto_now = True)
안녕하세요! 링크들어가서 봤는데요.. pyenv 로 만든 프로잭트에 pipenv install pillow 를 설치해서 사용할 수 있을까요? 아니면 그냥 pipenv 로 프로젝트를 다시 만드는게 좋을까요?
+0
2021년 5월 16일
pipenv 나 pyenv 나 가상환경을 설정하는건 같습니당. media 폴더를 활성화시키는데 초점을 두고 보시면 좋겠어용. 그리고 제가 탱글이님이 구현하려고 하신걸 이해한바로는 pillow 가 필요없을겁니다
+0
2021년 5월 16일
안녕하세요! 그냥 설정에 MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 를 추가하면 되더라고요. 근데 form까지 다 만들어서 입력을하기까지는 되는데요. views.py에서 사진을 모델에 넘겨주는? 그 부분에서 안되는거 같습니다. admin에서 추가하면 파일에 저장이 되는데, forms.html에서 추가하면 사진이 파일에 저장이 안됩니다.
댓글 6개
--views.py 입니다.
def newPage(request):
if request.method == 'POST':
newPost = Post(
title = request.POST['title'],
WR = request.POST['WR'],
image = request.POST['image'],
)
newPost.save()
return redirect(request, 'detail-page', id=newPost.id)
else:
note_form = PostForm
return render(request, 'posts/forms.html', {'form': note_form})
실행을 시켜주면 4번제 줄에서
django.utils.datastructures.MultiValueDictKeyError: 'image'
이라는 에러가 납니다
.
.
settings.py 에 `MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')`를 추가했습니다.
```
#models.py
from django.db import models
class Post(models.Model):
# 글의 제목, 내용, 작성일, 마지막 수정일
title = models.CharField(max_length=50)
content = models.TextField()
image = models.ImageField(upload_to='images/')
dt_created = models.DateField(verbose_name='Date Created', auto_now_add=True)
dt_modified = models.DateTimeField(verbose_name="Date Modified", auto_now = True)
def __str__(self):
return self.title
```
```
{% block content %}
{{post.content|linebreaksbr}}
수정일 {{post.dt_modified}}
{% endblock content %}
```
.
.
에러 코드: ``Not Found: /media/images/스크린샷_2021-05-02_오후_3.01.03.png``