본문 바로가기

Favicon Image Add to Django Admin Site 장고 어드민 사이트 (Django Admin Site)에 파비콘 이미지를 추가하는 방법을 요약해봤어요. 1. templates/admin/base_site.html 을 만들어서 원래 django에서 제공하는 base_site.html 내용을 그대로 붙여넣습니다. base_site.html의 위치는 ......../lib/python2.7/site-packages/django/contrib/admin/templates/admin에 있습니다. python 버전이나 virtualenv 환경에 따라서 약간 다를 수 있지만 django 아래 부터는 동일할거에요. 열어보시면 아래 그림과 같습니다. 물론 여기에 있는 코드를 고치면 되겠지만 서버로 배포할 때에는 또 서버에서 수정해야 하니까 불편하죠. 그래서 여러분의 .. 더보기
DRF - list_route, detail_route >> @action 변경 DRF (Django Resf Framework)에서 list_route와 detail_route는 각각 아래와 같이 변경해야 합니다. from rest_framework.decorators import action @action(detail=False) #list_route @action(detail=True, methods=['post']) #detail_route 이제 list_route, detail_route가 action으로 합쳐졌기 때문인데요. 아래 홈페이지 내용을 참고하세요. https://www.django-rest-framework.org/community/3.8-announcement/#action-decorator-replaces-list_route-and-detail_route a.. 더보기
Django Rest Framework : 3.5 to 3.8 Django + Django Rest Framework 버전업이 쭉쭉 되는 것 같아요. 아니면 제가 좀 늦게 버전업을 따라가는 걸지도 모르겠네요. 3.5 to 3.8에서 아래와 같은 warning이 발생하더라고요. 감히 DEFAULT_PAGINATION_CLASS를 설정하지 않고 PAGE_SIZE를 설정했다고 하는군요. 해결 방법은 DEFAULT_PAGINATION_CLASS를 설정하거나 PAGE_SIZE 설정을 닫거나 이겠죠.저는 PAGE_SIZE 설정을 주석처리 해버렸습니다. DEFAULT_PAGINATION_CLASS 와 관련한 DRF 문서는 http://www.django-rest-framework.org/api-guide/pagination/#pagination 요걸 참고하시면 될 것 같습니다... 더보기
Django Admin : Class Name Change (Verbose name) Django Admin 페이지에 클래스 이름을 변경하기 위해서는 models.py에 접속해서 해당 클래스의 Meta에 verbose_name과 verbose_name_plural을 직접 설정하면 됩니다. 이에 대한 자세한 설명은 Django 문서에서 확인할 수 있습니다. verbose_name - https://docs.djangoproject.com/en/1.11/ref/models/options/#verbose-name verbose_name_plural - https://docs.djangoproject.com/en/1.11/ref/models/options/#verbose-name-plural 아래와 같이 적용이 가능합니다. 적용 결과는 아래와 같고요. 조금이라도 더 보기 좋게 바꾸는 것을 계속하.. 더보기
Django와 ElastiCache 연결 AWS가 워낙 쉽게 서비스하고 있어서 큰 문제는 없지만 간단하게라도 정리해둡니다. 저는 Django 캐시를 Redis로 사용하고요. AWS 환경에서 실제 서비스하기 위해서 ElastiCache를 사용하고 있습니다. 일단 ElastiCache 서버를 하나 생성해서 완료되면 아래 그림과 같이 보입니다. Status가 available이면 사용 준비가 완료되었다는 거죠 !! Endpoint를 복사해서 Django Settings.py 파일에 입력하면 끝입니다. 다만 EC2에서 접근할 수 있도록 Security Group - Inbound에 6379 포트를 하나 추가해줍니다. Source에는 EC2 IP를 적어도 되지만 ElastiCache 자체가 기본적으로는 AWS 환경안에서만 접근 가능하기 때문에 0.0.0.. 더보기
Django + Rest Framework + JWT Django + Rest Framework + JWT 에 대해서 간단하게 작동을 실험해봤습니다. 여기는 간단하게 사진으로 정리해두려고 합니다. settings.py 에는 아래와 같이 추가합니다. 'rest_framework', 'rest_framework.authtoken', 'jwtTest', #저는 test app으로 jwtTest라는 앱을 생성했어요. 아래 그림도 settings.py 에 추가하는 부분입니다.구현하려는 시스템에서 원하는 Auth. Class를 추가해주시면 됩니다. 아래는 urls.py입니다. 요 아래는 jwtTest 앱의 views.py입니다. token을 get하는 것과 endpoint를 call하는 방법에 대해서만 잘 보시면 됩니다.Auth. Class를 JSONWebToeknA.. 더보기
Django Rest Sample App 많은 블로그나 웹 문서에서 다루고 있는 내용이라서저는 참고용 소스와 스샷으로 대신합니다 :) 간단하게 물건에 대해 저장 / 관리할 수 있는 앱이라고 생각하시면 되겠습니다.물론물론 당연히 실제로 이렇게 물건들이 관리되진 않겠죠 !! Django + REST 방식이 어떤 소스로 작동되는가 정도를 공유하는게 목표입니다. 1. 구현된 소스를 작동시키고 localhost:8000/product_a/management 로 접근하면 아래와 같은 화면이 나옵니다. Django REST Framework에서 기본적으로 제공하는 화면인데요.실제 get / post 명령어가 여기에서 가능하도록 UI가 구성되어 있습니다. 접속하면 get이 실행되어서 화면에 출력되고요. 하단에 있는 form을 통해서 post 메소드를 실행할 .. 더보기
django to s3 : certificate error hostname Django 에서 사용자가 업로드하는 파일을 S3에 저장하도록 만들어야 하는 경우가 있습니다. 저는 django-storages 라는 것을 사용하고 있고요. django-storages documentation : http://django-storages.readthedocs.io/en/latest/index.html django-storages package : https://pypi.python.org/pypi/django-storages django-storages git : https://github.com/jschneier/django-storages 사용하다 보면 아래와 같은 에러를 만날 수 있습니다. ㅠㅠㅠ CertificateError: hostname 블라블라 하는 에러인데요. setti.. 더보기
django rest : url in serializer django rest framework에서 serializer에 url field에 대해서 간단하게 기록해둡니다. django rest framework에서는 구현한 API를 테스트하거나 활용할 수 있는 웹 용 UI를 기본적으로 제공하자나요. 아래 그림과 같이 말이죠. 위 그림은 get 으로 모든 목록을 받아온 예시입니다. 그림에도 표시한 것 처럼 url 이라는 필드가 있고 그걸 클릭하면 id가 14인 객체 페이지로 이동하게됩니다. 아래 그림을 참고해주세요. GET 주소가 ~~~~/14로 변경된 것을 확인 할 수 있죠. 객체 페이지로 이동하면 delete나 update 기능을 수행할 수 있고요. url 필드는 기본적으로 제공되는 것인데요. 그러니깐 model에 url 이라는 필드가 존재하지는 않아요.se.. 더보기
django allauth - facebook reauth off django allauth에서는 여러 소셜 플러그인 로그인을 쉽게 추가할 수 있도록 지원하고 있어요. facebook에 대한 로그인도 지원하고 있어요. 한 달 전에는 아래와 같은 포스팅을 작성한 적이 있구요.2016/08/09 - [Python/Django&Celery] - allauth - facebook login 아무튼 간단하게 설정이 가능한데요.여기서는 reauth에 대해서만 그림 한 장으로 기록해둡니다 :) SOCIALACCOUNT_PROVIDERS = { 'facebook': { 'SCOPE': ['email'], # 'AUTH_PARAMS': { 'auth_type': 'reauthenticate'}, 'METHOD': 'oauth2', 'VERIFIED_EMAIL': False, 'EXCH.. 더보기
django rest framework serializer.is_valid() false, errors print 간단하게 기록용 !! django rest framework에서 views.py 단에서 주로 사용자의 request에 대해 serializer 연결을 합니다. 특히 create() 함수 그러니깐 post 요청, 다시 말해서 사용자가 먼가를 생성하는 요청을 한 경우에 사용자가 입력한 값이 적절한지 serializer에 is_valid() 함수를 통해 검토하고 save 해야 합니다 !! 말로 하니깐 알아보기가 불편하네요. 역시 코드가 이해하기 편한 것 같아요. 아무튼 views.py 를 잠시 살펴보시죠. @permission_classes((IsAdminUser, ))class TestDataViewSet(viewsets.ModelViewSet): queryset = TestData.objects.all().. 더보기
django robots.txt django 에서 robots.txt url mapping 하는 방법을 간단하게 기록 :) project의 urls.py에 아래 내용만 입력하면 끝이긴 해요.. (copy)url(r'^robots.txt$', TemplateView.as_view(template_name="robots.txt", content_type="text/plain"), name="project_robots_file"), 물론 robots.txt 라는 파일은 templates 폴더에 위치하고 있어야겠죠. 아래는 robots.txt 파일에 접속한 결과 화면입니다 :) 더보기
allauth - facebook login 이번에는 allauth를 사용해서 facebook 로그인하는 방법에 대해서 기록해두려고 합니다. 정리겸 기록용이라 자세한 설명은 패스 :) 1. allauth install - pip install django-allauth #django-allauth==0.25.2 2. allauth add to project - urls.py : url(r'^accounts/', include('allauth.urls')), - settings.py (http://django-allauth.readthedocs.io/en/latest/) 자세한 것은 페이지에서 확인하세요 :) 아래 그림에서 빠진 것도 있을 수 있어요. # allauth ============ startSITE_ID = 6EMAIL_BACKEND = .. 더보기
django collectstatic django manage.py 에서 제공되는 기능 중에 하나로 collectstatic이 있습니다. collectstatic은 settings.py에서 정의한 STATICFILES_DIRS에 있는 static 파일들을 STATIC_ROOT에 지정한 폴더로 모아주는 기능입니다. STATIC_ROOT = os.path.join(BASE_DIR, 'static')STATIC_URL = '/static/'STATICFILES_DIRS = ( os.path.join(DEVELOPMENT_DIR, 'dependency/dist'), os.path.join(BASE_DIR, 'TTT/TEST/statics'),) python manage.py collectstatic 하면 프로젝트 BASE_DIR의 static 이라.. 더보기
django admin site : PRINT - all columns(fields) of model django admin 페이지에서 model의 특정 컬럼을 시각화하는 방법에 대해서는 지난 포스팅에서 다룬 적이 있슴다 :) 요거구요 :)2016/04/20 - [Python/Django&Celery] - django admin site - list display 이번에는 모델이 가지고 있는 모든 컬럼을 시각화하는 방법에 대해서 정리해둡니다 ㅠ 1. 예를 들어서 test 라는 app에 Cup 이라는 모델이 있다고 가정할께요. admin.py 안에 아래와 같이 작성함으로써 모든 컬럼을 불러 올 수 있어요. from test.models import Cup class CupAdmin(admin.ModelAdmin): list_display = Cup._meta.get_all_field_names() admi.. 더보기
django admin site : boolean filter 관련 포스팅 - django admin site - list display : http://ngee.tistory.com/853 장고(django)에서 제공되는 Admin site는 쓸모가 많습니다 :)이번 포스팅에서는 boolean filter를 적용하는 방법에 대해서 정리해둡니다. 제가 사용하고 있는 django 버전은 1.9.5 입니다. 1. 아래 화면은 Filter를 하나 추가한 화면입니다. 필터의 종류는 BooleanFieldListFilter 이고요. 여러 컬럼 중에 ea_status 라는 컬럼을 활용한 것입니다. 기본적인 django admin site에 접속하면 filter는 하나도 존재하지 않습니다. 필터를 추가함으로써 많은 객체 중에서 원하는 객체를 쉽고 빠르게 찾을 수 있으니깐 객체가.. 더보기