스타일 -Django 모델 인스턴스를 직렬화 할 때 : 신호 대 모델 저장 방법

StackOverflow https://stackoverflow.com/questions/131327

  •  02-07-2019
  •  | 
  •  

문제

Django 모델을 XML에 저장하거나 업데이트 할 때 직렬화 할 계획입니다. (XML은 플래시 영화로 가져올 것입니다). post_save () 또는 pre_save () 신호를 듣고 직렬화를 수행하거나 Model 's Save () Methon에서 처리하는 것이 좋습니다.

도움이 되었습니까?

해결책

모델 저장을위한 핵심 기능이라면 저장 메소드의 일부로 모델을 원할 것입니다. 그러나 이미 기능 모델이 있고 다른 목적으로 확장하려면 신호가 적절하게 분리 된 모듈을 허용하기 때문에 신호가 가장 좋습니다.

좋은 예는 사이트에 이벤트 로깅을 추가하려는 것일 수 있으므로 원래 사이트 코드를 수정하는 대신 이벤트를 나타내는 신호를 듣습니다.

Post_save ()는 일반적으로 모델이 성공적으로 저장되었음을 의미하기 때문에 가장 좋습니다. pre_save ()를 사용하면 저장이 성공할 것이라고 보장하지 않으므로 완료되는 저장에 의존하는 데 사용되지 않아야합니다.

다른 팁

저장을 게시하십시오. 이렇게하면 새로운 데이터 (직렬화를 수행하는 이유)가 이미 데이터베이스에 있습니다. 데이터베이스에서 단순히 가져 오는 훨씬 깨끗한 코드가 만들어지고 추가 값을 추가하는 것에 대해 걱정할 필요가 없습니다.

떠오르는 다른 방법은 XML 파일을 데이터베이스와 병렬로 유지하는 것입니다. 즉, save ()에서 데이터를 데이터베이스와 XML 파일에 추가합니다. 거대한 테이블을 다루는 경우 오버 헤드가 훨씬 적습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top