django 5

내가 자고 있는 순간에도 Django는 일을 한다! django crontab 사용방법

내가 자고 있을 때도 django가 일을 할 수 있게 스케쥴링 함수를 만들어 리눅스에 배포하는 방법을 알아볼게요 먼저 django 프로젝트에 django-crontab을 설치합니다 다음 settings.py에 INSTALL_APPS 부분에 명시를 해주고요 python manage.py crontab add 명령어를 실행하려 크론탭을 등록합니다 이렇게 하면 Django 프로젝트를 위한 새 crontab 파일이 생성되며 이 파일을 편집하여 crontab을 사용하여 실행하려는 작업을 추가할 수 있습니다 참고 > https://pypi.org/project/django-crontab/

괴발개발/Django 2022.12.11

django order_by 한글 정렬하기 (글자수 무시하고 가나다 순으로만)

기본적으로 django에서 쿼리셋 정렬할 때 아래와 같이 order by 사용하면 서 field 명을 적어주면 된다 Test.objects.order_by('name') 'abcd' -> 'bc' -> 'ccccccc' 하지만 한글 이름은 아래와 같이 가나다 순으로 정렬은 되지만 글자수를 우선으로 적용된다 '최영' -> '김아무개' -> '이무개' 데이터베이스 sql문으로는 collate "ko_KR.utf8" 를 붙여주면 되므로 django에서도 직접 함수를 만들어 정렬 해줘야 한다 my_order_func = Func( 'name', function='ko_KR.utf8', template='(%(expressions)s) COLLATE "%(function)s"') Test.objects.order..

괴발개발/Django 2022.09.27

django management 명령어 만들기 (python manage.py)

이 글에서는 django management 시스템에 내가 필요한 명령어를 만들고 사용하는 법을 정리한다. django 프로젝트를 만들다보면, 테스트를 위해 필요할 때마다 django shell을 통해서 일시적인 코딩이 필요할 때가 많다. 게다가 그 코딩을 반복적으로 사용해야 할 경우가 많은데, 그 때마다 django shell에서 같은 코드를 실행시키는 것이 꽤나 불편하고 비효율적일 수 있다. 사용할 코드 DB에 아이템을 하나씩 추가할 때마다 그 아이템을 확인하고자 하는 상황이다. django shell을 통해서 다음과 같은 코드를 통해 테스트를 할 수 있을 것이다. $ python manage.py shell >>> from myapp.models import MyModel >>> latest_ins..

괴발개발/Django 2022.07.18

[Django] kakao social login allauth로는 안되는 증상

이번에 소셜로그인 기능에서 구글로그인과 같이 카카오로그인을 추가했다 django-allauth에서 구글로그인은 정상적으로 되었으나, 카카오 callback 함수에서 자꾸 오류가 나서 몇시간 삽질결과 현재 allauth에선 카카오 로그인 기능이 정상적으로 되자 않는 것 같다...(개삽질...) 어쩔 수 없이 카카오 로그인 함수는 기본 django.contrib.auth import login 기능으로 처리했다 login(request, user, backend='django.contrib.auth.backends.ModelBackend') backend는 allauth backend와 충돌하기 때문에 인자로 추가해야 한다 이 후 정상적으로 로그인 가능!!

괴발개발/Django 2021.08.07

[django] duplicate key value violates unique constraint 오류 문제 해결

postgresql을 tableplus로 직접 조작하다가 아마 django 마이그레이션이랑 충돌이 난 듯 하다 ㅠㅠ python manage.py dbshell 창에서 아래 명령어를 입력하거나, DB에 접속해서 입력하면 reindex 된다~ SELECT setval(pg_get_serial_sequence('service_servicecategory', 'id'), max(id)) FROM service_servicecategory; (sequence를 따로 안만들어도 되는 방법)

괴발개발/Django 2021.08.03