장고 5

[django] ImageField upload_to 동적 업로드(함수 사용)

장고 imagefield에서 image데이터를 업로드할 때 dynamic upload가 가능하다. 장고에서 사용자가 사용하는 폴더가 media라고 보통 정해놓는데 이 media폴더에 이미지를 업로드할 때 이름을 따로 지정해주는 것을 dynamic upload라고 한다. ImageField의 upload_to옵션은 이미지가 저장되는 경로를 넣어주는 옵션인데 여기에 함수를 만들어서 동적 업로드가 가능하게 할 수 있다. # models.py def image_upload_to(instance, filename): ext = filename.split('.')[-1] # 이미지 파일 형식 따오기 return os.path.join(instance.UPLOAD_PATH, "%s.%s" % (uuid.uuid4()..

[django] debug_toolbar 세팅

django debug 툴바 설치 및 세팅 방법입니다. 1. install Package pip install django-debug-toolbar pip install -e git+https://github.com/jazzband/django-debug-toolbar.git#egg=django-debug-toolbar 둘중 한 방법을 선택해서 사용하고 있는 가상환경에 django-debug-toolbar패키지를 설치해준다. 2. Check for Prerequisites 이 설정은 startproject를 할 때 이미 세팅이 되는 부분이라서 웬만하면 따로 손볼일은 없고, 아래 코드처럼 되어잇는지 확인만 하면 된다. # 프로젝트 디랙토리/settings.py INSTALLED_APPS = [ # ... ..

[django] django.db.utils.OperationalError: table already exist

에러 : table already exist 장고 migration시 table already exist 에러를 해결하는 과정에 대한 블로그입니다. 원인 아래와 같이 같은 이름의 테이블이 이미 존재하기 때문에 python manage.py migrate 할 수 없다는 에러메세지였다. 이 문제를 해결하려면 이미 존재하고 있는 테이블을 지우거나 수정해야 한다. 해결 python manage.py migrate --fake 을 입력하여 테이블이 없는 것으로 간주하고 새로 테이블을 만드는 명령어를 사용하면 됨.

[django] no such table: auth_user

python manage.py createsuperuser로 아이디와 패스워드를 만들려고 하는데 이런 오류가 뜬다. 구글링을 통해 찾아보니 말 그대로 DB에 테이블이 없어서 나타나는 문제점이라고 한다. 1. python manage.py makemigrations 2. python manage.py migrate 이 두가지 명령어를 순서대로 실행시켜서 migrate를 해주고 나서 다시 createsuperuser하면 된다. 장고 프로젝트를 새로 시작했을 때 기본적으로 세팅이 되어있는 모델들이 있는데 이 모델들도 맨 처음에는 migration을 해주어야한다. python manage.py makemigrations명령어는 모델에 변화가 있거나 모델을 새로 생성했을 경우 변경사항을 업데이트해주는 명령어다. ..

[django] 명령어 정리

django 명령어 정리 장고는 기본적으로 아래의 장고어드민(django-admin)이라는 명령어를 통해서 프로젝트와 앱을 실행시킬 수 있다. 프로젝트 생성 django-admin startproject [프로젝트 이름] 앱 생성 django-admin startapp [앱 이름] 서버시작 python manage.py runserver [포트번호] 장고로 프로젝트를 시작하면 manage.py라는 파일이 자동으로 생성되는데 이 파일이 있는 디렉토리에서 runserver와 포트번호를 붙여서 실행시키면 로컬 서버에서 장고프로젝트를 실행시킬 수 있게 된다! 아니 벌써 장고라는 틀을 가지고 일단 웹을 하나 찍어만들어보긴 한 셈이다. 짝짝짝!!! 이 외에도 django-admin을 치면 사용할 수 있는 명령어들이..