전체 글
-
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 FileField upload_to Custom 야매 적용기개발 일기 2021. 7. 12. 13:06
서론 필자의 개인 프로젝트 간 사용했던 내용을 저장 및 정리 용도로 쓰는 페이지입니다. 찾으시는 내용이 없을 수 있습니다. Crawler -> Crwaler 오타가 있습니다. FileField upload_to Custom 먼저 filefield의 upload_to 페이지를 보자. 기본적으로 upload_to는 아래와 같이 model 딴에서 간단하게 사용이 가능하다. class MyModel(models.Model): # file will be uploaded to MEDIA_ROOT/uploads upload = models.FileField(upload_to='uploads/') # or... # file will be saved to MEDIA_ROOT/uploads/2015/01/30 upload..
-
selenium Tips개발 일기 2021. 7. 8. 17:27
서론 개인 프로젝트 간 셀레니움을 사용한 코드들을 정리한 페이지입니다. 셀레니움 HeadLess(헤드리스) 및 options driver_options = webdriver.ChromeOptions() driver_options.add_argument("--mute-audio") # driver size driver_options.add_argument('window-size=1920x1080'); driver_options.add_argument('--start-maximized') # headless driver_options.headless = True driver_options.add_argument('--disable-gpu') # driver user options driver_options...
-
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
-
Django restframework ModelViewSet Delete, Update개발 일기 2021. 6. 7. 20:47
서론 개인적인 공부중 애로사항 및 해결 방법을 찾아서 나열한 게시글입니다. 찾으시는 내용이 없을 수 있습니다. 본론 Front에서 Comment Update, Delete를 사용하기 위해 코드를 짜던중... Delete는 별 이상 없이 진행되나 Update에서 문제가 발생했다. serializer = self.get_serializer('author'~~, 'comment'~~) 이렇게 author를 넣었는데 author가 Null 취급하여 Update가 되지가 않는 것이다... 한참을 혼자 이리저리 집어넣다가 하루가 다 가고서야 소스코드를 봤다. def update 부분을 보니까 serializer에 data만 넣는 게 아니고 instance라는 부분을 넣는 것을 알 수 있다. instance는 get..
-
Lesson 5 Prefix Sums MinVagTwoSlice 나만의 풀이알고리즘/codility 2021. 6. 4. 23:53
문제 A non-empty array A consisting of N integers is given. A pair of integers (P, Q), such that 0 ≤ P < Q < N, is called a slice of array A (notice that the slice contains at least two elements). The average of a slice (P, Q) is the sum of A[P] + A[P + 1] + ... + A[Q] divided by the length of the slice. To be precise, the average equals (A[P] + A[P + 1] + ... + A[Q]) / (Q − P + 1). For example, a..