2011-01-12 3 views
1

syncdb가 실행될 때 사용자 지정 메서드를 실행하는 방법이 있는지 궁금합니다. 내가 달성하려고하는 것은 데이터베이스에 메일 템플리트를로드하는 것입니다. db의 여러 항목에서 거의 동일한 템플리트가 필요하므로 initial_data 파일에 배치하지 않으려 고합니다.Django - syndb 명령에 대한 사용자 지정 메서드 실행

나는 django 문서와 웹을 검색했지만 이에 대한 해결책을 찾을 수 없습니다.

도움을 주시면 감사하겠습니다.

답변

3

post_syncdb 신호는 어떻습니까?

http://docs.djangoproject.com/en/dev/ref/signals/#django.db.models.signals.post_syncdb

는 함수에 원하는대로 신호 및 실행에 핸들러를 연결합니다.

글쎄, 그것은 귀하의 경우에 효과가있을 수 있습니다, 그렇지 않을 수도 있습니다. post_syncdb은 테이블 생성 후 호출되어 모든 앱에 전송되므로 모든 기본 데이터 생성을 처리하는 하나의 메소드를 원할 경우 다음 스 니펫과 같은 것을 사용하여 신호가 목록의 마지막 앱에 해당하는지 감지해야합니다. 당신의 테이블이 존재하는지 확인하십시오 : P.

http://djangosnippets.org/snippets/1988/

글쎄, 그것은 생각입니다. 즐겨!

+0

내가 필요로하는 것처럼 보이지만 atm은 작동하지 않는 것 같습니다. 여전히 신호 처리기 등록으로 조금 어려움을 겪고 있습니다. 나중에 작동하면 피드백을 드리겠습니다. 그러나 어쨌든 고마워. –

+0

글쎄, 당신의 솔루션이 작동합니다. 그러나 syncdb_signal은 조명기를 설치하기 전에 발생하므로 꼭 필요한 것은 아닙니다. 하지만 당신은 나를 올바른 방향으로 가리켰다. 이제 모델에 대한 저장 핸들러를 생성하여 조명기 설치 후 템플릿의 내용을 업데이트합니다. 감사! –

+0

안녕하세요, 무덤, 답변을 수락 해 주셔서 감사합니다. :) 내가 한 일에 대해 물어봐도 될까요? post/pre_save 신호를 의미합니까? –

관련 문제