말그대로 장고 쓰다가 찾아보게 되는 코드 조각들을 여기에 저장해 둬 보자. 위키처럼 쭉 저장해둔다. 테마가 될때까지 timedelta 값 template에서 표기하기 가장 쉬운 솔루션으로 가자. https://stackify.dev/332647-displaying-a-timedelta-object-in-a-django-template Displaying a timedelta object in a django template - Stackify I followed Peter's advice and wrote a custom template filter. Here's the steps I took. First I followed this guide to create a custom template filte..
기다리던 구글 애드센스 PIN 번호 정보가 국제우편으로 도착했다. 이젠 애드센스 페이지에서 나의 주소 확인이 가능한 상태가 되었다는 얘기 편지를 오랜만에 받아봐서 약간 들뜨네 :) 지시한대로 양쪽 모서리 부분을 제거하고 펼치면 구글 PIN 번호가 떡하니 나타난다. 여기 지시대로 Adsense 페이지에 들어가서 계정 정보에서 PIN 번호 입력창에 이 번호를 넣으면 끝~ 그럼, 주소 인증이 완료되고 아래와 같은 화면이 정상적으로 나타난다. 이제 100불을 채워야 지급할 수 있는 단계로 진입할 수 있으니 좀 기다려 보자. 백불을 쌓을때까지 ㅋ 언젠가는 오겠지~~~~~~~
내부 함수가 머가 있는지 막 찾아보는데, 그냥 여기 하나 저장해 두자. 검색어는 django updateview get_success_url form_class access 이런식으로 쳐봤다. 먼가 기본 기능하다가 막 오버라이딩 하고 싶은 욕구가 많은 뷰이긴 하다. 수정이라는 기능이...상태를 바꾸거나, 어떤 작업을 해 주고 싶은데 딱 해당 폼 값만 바꾸기는 아쉽다. 아래 함수들 중에 아무거나 골라서 overriding 해서 사용하기 바란다. 보통 form_valid() form_invalid() 를 많이 쓰긴 한다. from https://dongsik93.github.io/til/2019/12/20/til-django-cbv(4)/ class FormMixin(ContextMixin): """Prov..
JQuery 혹은 자바스크립트 에서 사용되는 코드 조각들을 여기에 일단 유용한 것만 모아두자. 참고 - 셀렉트박스 유지를 위한 스크립트 페이지의 쿼리 파라메터를 읽어와서 기존 값을 유지하는 코드 함수, 그대로 가져왔는데 왠만하면 아래 글쓴이 링크로 가서 읽어보세요. (여긴 그냥 제 참고용으로 남겨둡니다. 설명은 원본글에서 읽으세요 ^^;;;) https://wayhome25.github.io/django/2017/03/01/django-99-my-first-project-5/ // get url query string var getUrlParameter = function getUrlParameter(sParam) { var sPageURL = decodeURIComponent(window.locatio..
애드센스에 미리 등록해 둔 주소로 PIN 번호를 발송했다는 주소 확인 과정으로 진입~~ 아래와 같은 메일이 떡 왔다~~ 발송지로 우편을 보냈으니 내년 4월까지 확인해 주십사 하고...총 4개월 동안 업데이트가 없으면 광고가 나타나지 않는다는 경고와 함께~~~ 3주동안 우편이 오지 않으면 아래 메시지 처럼 adsense 에 주소를 변경하거나 확인해야 한다. 애드센스 페이지에는 어떻게 표기가 되어 있을까? 확인해 보자. 페이지에 들어가보니 청구서 수신 주소 확인이라는 카드가 떠 있고, 확인을 누르고 들어가 봤다. 본인 확인이라는 페이지 타이틀과 함께 우편번호로 받은 PIN 넘버를 입력할 수 있는 창이 뜬다. 왼쪽 메뉴에 "지급>본인 확인" 이렇게 찾아가도 되네. 일단 받지 못해서 입력은 못하지만, 우편 수령..
장고 업데이트를 위해 UpdateView 를 쓰는데, 저장할때 먼가를 바꾸기 위해서 사용자 기능을 넣기 위해서는 함수를 오버라이딩을 해야 한다. 몇개 샘플로 남겨두자. view 코드는 아래와 같다. 폼객체에 먼가를 수정을 가하고 싶다면 form_valid 오버라이딩 함수에서 instance 에 작업 하면 되겠다. class FirmwareUpdateView(...UpdateView): def form_valid(self, form): print("form_valid override") instance = form.save(commit=False) print(self.request.FILES.items()) for filename, file in self.request.FILES.items(): print..
장고 템플릿에서 html로 변환되서 사용되기 때문에 문자열 함수가 몇개 있다. 다 정리하긴 어렵고 아래 페이지를 참고하세요. https://himanmengit.github.io/django/2018/02/23/Built-In-Template-Filter.html Django 내장 템플릿 필터 · 초보 웹 프로그래머 himanmengit.github.io 일단 아래 3개를 사용 많이 한다. linebreaksbr 모든 개행 문자를 로 바꿈 # joel\nis a slug. -> joel is a slug {{ value|linebreaksbr }} escape 문자열의 HTML을 이스케이프 한다.
그냥 pip install 해서 패키시 설치하는데 이런 UnicodeDecodeError 'cp949' 에러가 나면 곤란해진다. 내가 작성한 코드도 아니고 매번 디버깅하기도 애매하다. 이때는.... 반드시 여기를 방문해서 일독 해보시기 바란다. 엄청 자세히 잘 되어 있다. https://daewonyoon.tistory.com/296 pip install 중에 , setup.py 에서 UnicodeDecodeError 'cp949' codec can't decode .... illegal multibyte sequence 가 발생하 pip install 중에 , setup.py 에서 UnicodeDecodeError 'cp949' codec can't decode .... illegal multibyte..
장고 Formset 을 보는 예제를 보면, 다들 for iteration 하면서 개별 form에 접근하는 코드들만 있다. 난 그냥 0번째 넘을 바로 접근하고 싶은데 잘 안되서 막 찾아봄 가장 기본 예제는 아래와 같다. https://docs.djangoproject.com/en/3.2/topics/forms/formsets/ {{ formset.management_form }} {% for form in formset %} {{ form.title }} {{ form.pub_date }} {% if formset.can_delete %} {{ form.DELETE }} {% endif %} {% endfor %} 여기서 form 중에 0번째 놈을 접근하려고 formset[0] 시도 했는데 실패 forms..
장고 폼으로 작업하다 보면 Select 필드로 변환되는 필드는 기본으로 Empty 필드가 있다. "----------" 이런 문자열이 제일 위에 등장한다. 머 나름 선택하지 않았다는 표시이니깐 괜찮지만 없애고 싶다면 아래 글을 참고하세요. 빈 필드가 나타나는 형태는 아래 그림과 같다. -------- 이런 문자열이 제일 위에 있어 거슬리거나 무조건 하나의 값을 선택된 형태로 되면 좋겠다면 제거해야 한다. 다행이도 이를 제거하는 옵션이 있다. ForeignKey 등 릴레이션 모델이 들어가는 ModelChoiceField 의 경우 self.fields['sub'].empty_label = None empty_label 이라는 것을 None 으로 해 주면 된다. 그리고, 일단 기본 default 값을 주게 되..
장고로 서비스를 만들고 배포할 때 초기 데이터가 들어야 있어야 하는 경우가 있다. 반드시 있어야 로직이 돌게 되어 있거나 초기값이 세팅 되어야 하는 것들. 상태 데이터 이런 것들이 되겠다. 데이터 dump 방법 방법은 아주 쉽다. 현재 개발 중인 데이터 중에 필요한 것을 dump 떠 놓으면 된다. https://coderwall.com/p/mvsoyg/django-dumpdata-and-loaddata https://docs.djangoproject.com/en/3.2/ref/django-admin/#dumpdata 가장 기본적인 방법은 아래와 같다. ./manage.py dumpdata > db.json 막상 하니깐 데이터가 너무 많어. 딱 필요한 넘들만 골라서 해보자. 특정 테이블 만 dump 하기 ..
장고 ModelForm 을 편하게 쓰고 있는데, 아예 입력 창을 띄울 때 Foreign key로 등록된 필드를 일부 필터링해서 보여주고 싶은 경우가 아주 자주 발생한다. 무슨 overring 하면 될 듯 한데 솔루션을 찾아보자. (2021.11.25) 업데이트 request.POST 데이터를 넘기니깐, 첫번째 인자로 들어가 버려서 원래 작성된 아래 글처럼 선언하면 사용자 변수 위치에 떡 들어가 버려서 오류를 일으킴. 그냥 아래처럼 사용자 변수를 받도록 처리하자. 인자를 추가하지 말고 참고 사이트 - https://europani.tistory.com/247 def __init__(self, *args, **kwargs): self.user = kwargs.pop('user')# pop을 이용하여 받음 s..
DTL 에서 부모 템플릿에 있는 값을 그대로 출력하거나 해당 블럭을 통째로 자식 템플릿에서 바꾸고 싶다면 부모에 블럭을 선언하고 기본 값을 같이 넣어 두면 된다. 부모 템플릿에 메뉴가 있는데, 어떤 자식 템플릿에서는 그 메뉴을 없애고 싶다면 머 여러가지 방법이 있겠지만 이 방법이 가장 단순하지 않을 까 싶다. 부모에 블럭을 하나 선언해 둔다. 예제에서는 "Sidenav" 를 선언해 둔다. 보통 선언하자 마자 바로 "{% endblock %}" 을 붙여넣고는 자식에서 이 블럭을 선언해서 사용하기를 기대한다. 아래와 같이 선언된 경우는 자식 템플릿에서 아무런 선언을 하지 않으면 부모껏을 그대로 쓰게 된다. 기본 값을 가지는 셈이 된다. ... {% block Sidenav %} {% include 'incl..
데이터를 테이블로 표현하는 아주 좋은 라이브러리 Datatables 를 소개해 보려 한다. jquery 기반으로 시작된 듯 하나 요즘 트렌드에 맞게 서버사이드 스크립팅 머 이런것도 지원하는 것으로 보인다. 아주 많은 선구자들이 있으니 있다는 것을 아는 것이 중요하다. 아래 글을 꼭 참고하자. Grid 라이브러리-Datatables 사용법/예제 Grid 라이브러리-Datatables 사용법/예제 최근 사용하게 된 datatables 라이브러리에 대한 약간의 설명을 공유하고자 합니다. datatables는 데이터 그리드를 다루는 라이브러리로 '이 기능이 있었으면' 하는 부분은 거의 갖추고 있습니다. 한 kutar37.tistory.com 진짜 내용은 꼭 위 원본 글에 들어가서 보시기 바란다. 완전 만족할 듯..
Django scss 활용을 위해 패키지 설치를 몇개 더 설치해야 한다. 이 경우 갑자기 MSVC 빌드 툴을 설치하라는 에러가 막 등장하네. 이를 해결해 보자. 장고에서 Scss 사용하기라는 글을 따라하다가 https://blog.jaeyoon.io/2017/10/django-sass.html 장고 프로젝트에서 SASS/SCSS 사용하기 CSS 프리프로세서에 대하여 SASS/SCSS는 스타일시트 언어인 CSS를 조금이나마 프로그래밍 언어처럼 사용할 수 있게 도와주는 CSS 프리프로세서(preprocessor)이다. SASS 말고도 Bootstrap이 v3까지 쓰던 LESS blog.jaeyoon.io 자세한것은 해당 페이지에 가서 보고, 아래 패키지를 설치해야 한다. pip install libsass ..