Django 사용 팁들
Contents
링크
Static generator : 10배이상 빠른 정적파일 서비스
팁들
다대다 선택 폼필드
many to many 관계를 폼에서 쓸 때, ModelMultipleChoiceField 를 쓰게 되는데 이 폼요소가 쓰기가 좀 불편하다. ctrl 누르고 선택해야하는데 잘못해서 그냥 누르면 기존의 선택들이 다 날아감. django admin 에 있는 필드는 좋던데 말이지... 이 필드를 가져와 쓸수도 있다. django.contrib.admin.widgets.FilteredSelectMultiple 위젯 참고 -- yong27 2011-11-24 17:53:12
짧은 팁들
원격지의 컴퓨터에서 runserver를 확인하고 싶으면 아래의 명령 사용
python manage.py runserver 0.0.0.0:8080
template에서 모델객체 사용시, 메쏘드 호출에 "()"를 쓰지 않아야 한다.
다른 스크립트에서 django로 만든 프로젝트로 접근하는 방법
Sqlite를 쓰면서 ModPython으로 서비스를 시작하면 다음에러를 만난다.
OperationalError: SQL logic error or missing database
sqlite db의 permission을 수정해준다.
offline에서 문서를 읽고 싶으면 다음처럼...
wget http://www.djangoproject.com/documentation/ -r -np -k
Model.objects.get(pk=model_id) 로 데이터를 가져올 때 해당 id의 내용이 없으면, DoesNotExist 예외가 발생한다. 이걸 Http404 예외로 바꾸고, template 상위디렉토리에 404.html 파일을 만들어 놓으면, 해당 데이터가 없을 때, 404.html 템플릿이 출력된다. 재밌는건 settings 에서 Debug=True 로 놓으면, django error 페이지가 출력된다. -- yong27 2007-09-11 19:02:29
newforms.form_for_model 을 써서 subclassing을 하면, 제대로 되지 않는다. 즉
의 경우, CattleForm의 필드들은 출력되지 않는다. 찾아보니, http://code.djangoproject.com/ticket/3815 가 보고되어 있으나, 아직 적용되지 않고 있다. http://code.djangoproject.com/ticket/5050 에 첨부된 Patch를 적용하니 제대로 되긴 하다. 언제 적용되려나...
-- yong27 2007-09-05 15:02:08
template block으로 url을 쓸 경우, 해당 url의 RegularExpression이 (abc|def|gh) 로 되어 있을 경우, 역 파싱이 안된다. 관련 질답은 nabble과 #2977
Django admin 에서 foreign key 로 되어 있는 항목의 경우, 해당 내용을 볼 수 있는 링크가 존재하지 않는다. http://code.djangoproject.com/ticket/2569 Patch를 적용하면 되긴 한다. -- yong27 2008-03-17 14:01:44
newforms 의 ModelChoiceField 를 쓸 때, 기본적으로 선택하고자 하는 개체들의 __unicode__ 가 표시된다. User 의 경우, id 대신 get_full_name을 쓰고 싶다면, 다음 처럼 label_from_instance 메쏘드를 오버라이드하면 된다.
Django 새버전 어느쯤에서인가 One-to-one 관계에 복수개의 모델을 적용시킬 수 있도록 변경되었나보다. 따라서, One-to-one 테이블에서도 자체 id가 사용되기 시작했다. 여기까지는 좋은데, 이로인해 기존의 코드가 동작하지 아니함.
MySQL이라면 다음의 방법으로 테이블 스키마 변경
alter table tablename drop primary key; alter table tablename add id int(11) auto_increment primary key first; update tablename set id=one_to_one_colume_id;
collections.defaultdict 을 템플릿 컨텍스트로 사용할 때 주의할 것. 참고 -- yong27 2008-11-08 10:50:23