Django
-
django-jsonform을 사용한 django admin 활용Django 2024. 7. 21. 18:54
목차서론본문은 django-jsonform을 사용하여, 어드민 페이지에 쉽고(그나마), 간단히 사용한 예시를 작성하였습니다. 본론라이브러리 설치 및 settings에 추가pip install django-jsonform == 2.22.0 INSTALLED_APPS = [ ... "django_jsonform",]JSONField 사용하여 model 추가json 타입을 지정하여, 원하는 dict 형태로 생성이 가능합니다.from django.db import modelsfrom django_jsonform.models.fields import JSONFieldclass AbstractModel(models.Model): QUERIES_SCHEMA = { "type": "list..
-
drf_spectacular를 사용한 api docs 만들기Django 2022. 11. 20. 17:11
목차 서론 필자가 drf_spectacularf를 사용하여 만들었던 docs 페이지를 기억하기 위해 작성하는 페이지입니다. 찾으시는 내용이 없을 수 있습니다. 또한 정확히 알지 않고 필자의 경험으로만 이루어져 있기 때문에 없는 내용 및 틀린 내용이 존재할 수 있습니다. 본론 1. drf-spectacular settings settings.py에 API docs에 보여질 title, description, version을 지정할 수 있습니다. 이외의 기타 설정값들도 지정할수 있으니 링크 를 참조하시길 바랍니다. SPECTACULAR_SETTINGS = { 'TITLE': 'TITLE', 'DESCRIPTION': 'DESCRIPTION', 'VERSION': '1.0.0', } 2. extend_sche..
-
Django서버에 간단한 HTTPS Let's Encrypt 적용하기Django 2022. 7. 30. 21:46
서론 웹 서비스에 기본적으로 들어가는 https는 nginx 설정, ssl 발급, 키파일 적용까지 필자에게는 너무 복잡하고 어려운 일이었다. 그러나 아래 레퍼런스의 튜토리얼을 보고 간단하게 ssl 적용하는 내용을 기억할 겸 다시 적어보는 내용이다. 그리고 튜토리얼 답게 정말 간단하게 사용이 가능하다. 글로만 설명 해보면 1. docker-compose로 nginx-proxy, acme-companion(let's encrypt) 연결 2. 환경변수를 통한 도메인 ssl 적용 그리고 인증서의 만료는 3개월이나 자동으로 인증서를 체킹 하여, 갱신해준다 (필자가 직접 3개월 동안 뒀더니 자동으로 갱신되었다.) 주의사항 docker container를 사용하여 무료 ssl인 let's encrypt를 적용하는 ..
-
django.core.exceptions.SuspiciousFileOperation: Detected path traversal attemptDjango 2021. 8. 2. 13:59
서론 이 글은 Django FileField upload_to Custom 야매 적용기 와 연관된 페이지입니다. 찾으시는 내용이 없을 수 있습니다. Django FileField upload_to Custom 야매 적용기 서론 필자의 개인 프로젝트 간 사용했던 내용을 저장 및 정리 용도로 쓰는 페이지입니다. 찾으시는 내용이 없을 수 있습니다. Crawler -> Crwaler 오타가 있습니다. FileField upload_to Custom 먼저 filefield의 mixedprograming.tistory.com 본론 이전 글의 upload to Custom을 야매로 적용 후 Docker ec2환경에서 적용을 하려고 했더니 제목과 같은 에러가 떴다. upload_to를 적용하면 대충 /project3/..
-
Django queryset distinct and sortDjango 2021. 8. 2. 09:35
서론 기본적으로 Django의 정렬은 order_by로 시작하면 된다. 참조 그러나 필자의 상황은 이름 중복을 제거하면서 날짜 정렬를 해야하는 상황이었다. 그러나 django docs를 보면 distinct를 사용하려면 order_by가 같이 들어가는 상황이었다. >>> Entry.objects.order_by('author', 'pub_date').distinct('author') 이렇게 사용하면 author, pub_date순서로 정렬되므로 날짜순서로 order_by가 불가능해진다. 그래서 중복 제거 후 따로 정렬하는 방법을 찾았다. 본론 중복제거를 한 후 python operator 라이브러리로 created_at을 얻어 정렬해주는 방법을 찾았다. queryset = CrwalingModel.obj..
-
Django to AWS S3 업로드간 발생하는 I/O operation on closed file 해결방법Django 2021. 6. 21. 05:04
서론 필자는 Django rest api(DRF)와 React를 연결하여 500 에러가 난 증상에서 시작되었습니다. 필자의 해결 진행 순서대로 진행되므로 양해 바랍니다. I/O operation on closed file에러 Django와 AWS의 S3를 연동 후 파일을 업로드하게 된다면 아래와 같은 에러 메시지를 받을 수 있다. File "C:\Users\user\Desktop\project\venv\Desktop\lib\site-packages\storages\backends\s3boto3.py", line 447, in _save content.seek(0, os.SEEK_SET) ValueError: I/O operation on closed file. 이러한 증상들을 찾다보니 한 블로그에서 증상..
-
Django OneToOneField로 연결된 model 자동 생성Django 2021. 6. 14. 10:35
서론 공부 삼아 만들던 중 기억하기 위해 쓰는 글입니다. 필자가 만들던 코드를 그대로 가져오므로 예시가 좀 이상할 수 있습니다. 본문 자동으로 생성해주는 코드는 django docs의 signals를 보면 된다 본문을 조금 떼어다 번역해보자면 다른 곳에서 작업이 발생할 때 알림을 받을 수 있도록 도와주는 signal dispather가 포함되어 있습니다. Singerd을 통해 특정 sender는 어떤 조치가 취해졌음을 receiver에게 알릴 수 있습니다. 즉 singnal을 보내고, receiver로 받아서 그 뒤에 할 일을 정하는 것이다. 물론 이 글에서는 연결된 모델을 생성하는 걸 보여주겠다. 먼저 Video와 Post가 OneToOneField로 연결되어있는 상태를 보여주는 코드 예시이다. 여기서..
-
Django Filefield의 file에서 name 가져오기Django 2021. 6. 14. 09:55
Filefield에서 name 값 찾기 FileField의 file의 file.name은 전체 경로를 반환한다. 그래서 os.path.basename(self.file.name)으로 file.type으로 전환 그 후. split(".")[0]으로 파일 이름만 반환 합친 코드로 보자면 os.path.basename(self.file.name).split(".")[0] 예시 사진 REFERENCE https://docs.djangoproject.com/en/3.2/ref/files/file/#django.core.files.File