장고 모델에서 charfield값을 string으로 변환시키는 법에 관련하여 문의드립니다.
장고를 이용하여 지도 api의 위도와 경도 값(특정위치)에 사진들을 저장하는 서버를 만들고 있는데,
사진을 저장할 모델을 다음과 같이 설정하였습니다.
class Point(models.Model):
lattitude = models.CharField(max_length=30)
longtitude = models.CharField(max_length=30)
image = models.ImageField(upload_to="%s:%s" % (lattitude, longtitude))
사진이 저장되는 위치에 "위도:경도" 형태로 폴더를 만들고 해당 위도 경도값에 해당하는 사진들을 모두
그 폴더에 저장하고 싶은데, upload_to="%s:%s" % (lattitude, longtitude) -> 여기서 charfield형식의 값을 string처럼 쓰니깐
'django.db.models.fields.CharField:django.db.models.fields.CharField'
와 같은 이름으로 폴더가 생겨버립니다. 장고 쉘에서 type(lattitude)와 type(longtitude)가 모두 str class길래 string처럼
쓸 수 있을 줄 알았는데, 아닌가봅니다. 제가 원하는 것은 예를 들어 lattitude=11.11, longtitude=10.98이라 할때,
"11.11:10.98"이라는 이름의 폴더를 생성하고 거기에 이미지를 저장하는 것인데, 방법이 없을까요?
또, 위의 모델이 정상적으로 저장되는지 장고 쉘에서 테스트해보고 싶다면
p = Point(lattitude=11.11, longtitude=10.98, image=) -> 여기서 이미지 애트리뷰트를 어떤식으로 넣어줘야 할까요?
정희석 님 581
M 2021년 1월 25일 5:09 오전
1개의 답변이 있습니다. 1 / 1 Page
upload_to 속성에 문자열을 직접 입력하는 대신 함수를 지정하여 사용할 수 있습니다.
자세한 내용은 아래 참고해 보세요.
https://docs.djangoproject.com/en/3.1/ref/models/fields/#django.db.models.FileField.upload_to
이미지 업로드를 웹이 아닌 셸과 같은 곳에서 테스트하시려면 다음 문서를 참고해 보세요.
박응용 님
2021년 1월 25일 12:25 오후