[Django] 사용 팁들
링크
[http://www.amitu.com/blog/2007/july/django-extending-user-model/ Extending User model]
[http://www.b-list.org/weblog/2007/nov/27/performance/ Django performance tips]
[http://superjared.com/projects/static-generator/ Static generator] : 10배이상 빠른 정적파일 서비스
- [wiki:Blog/303 Django newforms tip: 폼요소에 같은 이름 여러번 사용하기]
짧은 팁들
원격지의 컴퓨터에서 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"] DateTime(2007-09-11T10:02:29Z)
newforms.form_for_model 을 써서 subclassing을 하면, 제대로 되지 않는다. 즉
의 경우, CattleForm의 필드들은 출력되지 않는다. 찾아보니, http://code.djangoproject.com/ticket/3815 가 보고되어 있으나, 아직 적용되지 않고 있다. http://code.djangoproject.com/ticket/5050 에 첨부된 [Patch]를 적용하니 제대로 되긴 하다. 언제 적용되려나...
-- ["yong27"] DateTime(2007-09-05T06:02:08Z)
template block으로 url을 쓸 경우, 해당 url의 RegularExpression이 (abc|def|gh) 로 되어 있을 경우, 역 파싱이 안된다. 관련 질답은 [http://www.nabble.com/Question-about-%7B--url---%7D-t4164661.html nabble]과 [http://code.djangoproject.com/ticket/2977 #2977]
Django admin 에서 foreign key 로 되어 있는 항목의 경우, 해당 내용을 볼 수 있는 링크가 존재하지 않는다. http://code.djangoproject.com/ticket/2569 [Patch]를 적용하면 되긴 한다. -- ["yong27"] DateTime(2008-03-17T05:01:44Z)
newforms 의 ModelChoiceField 를 쓸 때, 기본적으로 선택하고자 하는 개체들의 __unicode__ 가 표시된다. User 의 경우, id 대신 get_full_name을 쓰고 싶다면, 다음 처럼 label_from_instance 메쏘드를 오버라이드하면 된다.