1. 파일 저장 및 전달
admin에서 파일을 업로드하면 저장 될 패스를 지정합니다.
지정된 위의 경로로 파일이 저장됩니다.
url에도 추가해줍니다.
2. Model 및 Admin 설정
model.py
class AwardImageUpload(models.Model):
title = models.CharField(max_length=30, null=True)
image = models.ImageField(upload_to='about_me/awards/%Y/%m/%d', blank=True)
created_at = models.DateTimeField(null=True, blank=True)
updated_at = models.DateTimeField(auto_now=True, null=True, blank=True)
def __str__(self):
return f'{self.title}'
CBV방식으로 이미지를 업로드할 수 있는 페이지를 admin에 추가합니다.
만들어진 클래스를 admin 페이지에 적용시킵니다.
$ python manage.py makemigrations
$ python manage.py migrate
모델을 추가했으니 잊지말고 마이그레이션을 해줍니다.
admin 페이지에 정상적으로 추가된 것을 확인할 수 있습니다.
클래스에서 설정한 제목, 파일, 날짜를 설정하고 저장합니다.
정상적으로 추가된 것을 확인할 수 있습니다.
지정한 경로에도 잘 생성되었습니다.
3. View 설정
view.py
def about_me(request):
award_image = AwardImageUpload.objects.all()
return render(
request,
'single_pages/about_me.html',
{
'award_image': award_image
}
)
about_me 템플릿으로 값을 가지고 넘깁니다.
about_me.html
{% for image in award_image.all %}
<h1>{{image.title}}</h1>
<img src="{{image.image.url}}" />
{% endfor %}
admin에서 작성한 제목과 이미지를 출력할 수 있습니다.
'Python > Django' 카테고리의 다른 글
Django kakaotalk 로그인 api 적용하기 (0) | 2022.07.28 |
---|---|
Django Admin 파일 업로드 구현하기 (0) | 2022.07.15 |
Docker 실행 시 이미지 안 뜨는 문제 (0) | 2022.07.14 |
Django 로그인 시 CSRF 에러(CSRF verification failed. Request aborted) (0) | 2022.07.12 |
docker 실행 시 nginx 에러 (0) | 2022.07.12 |