[PYTHON] Django에서 save를 호출하기 전에 모델이 변경되었는지 검색합니다.
PYTHONDjango에서 save를 호출하기 전에 모델이 변경되었는지 검색합니다.
원격 데이터의 변경 내용을 기반으로 업데이트되는 데이터베이스 모델이 있습니다 (HTML 스크래퍼를 통해).
변경된 필드를 유지하려고합니다. 이전에 모델의 값이 이전의 모델의 값으로 변경된 시간을 나타내는 타임 스탬프입니다 (모델의 save 메소드가 호출 될 때마다이 필드가 업데이트되므로 auto_now와 다릅니다).
여기 내 질문입니다 :
모델의 저장 메소드에서 모델 인스턴스의 현재 값이 데이터베이스의 값과 다른지 여부를 간단히 감지 할 수 있습니까? 또는 변경된 타임 스탬프를 쉽게 유지 관리 할 수있는 대체 방법이 있습니까?
해결법
-
==============================
1.http://code.activestate.com/pypm/django-dirtyfields/
http://code.activestate.com/pypm/django-dirtyfields/
django 모델 인스턴스에서 더티 / 변경된 필드를 추적합니다.
-
==============================
2.폼을 통해 인스턴스를 저장하면 form.has_changed ()를 확인할 수 있습니다.
폼을 통해 인스턴스를 저장하면 form.has_changed ()를 확인할 수 있습니다.
-
==============================
3.레코드 값을 저장할 때 레코드 값의 체크섬을 계산할 수도 있습니다. 그런 다음 나중에 읽을 때 체크섬을 다시 계산하여 변경되었는지 확인하십시오. 아마도 crc32는 Python zlib 표준 모듈에서 작동합니다. (나는 이것이 어떤 종류의 성능을 가지는지 확신 할 수 없다. 그래서 당신은 그것을 조사하고 싶어 할 것이다.)
레코드 값을 저장할 때 레코드 값의 체크섬을 계산할 수도 있습니다. 그런 다음 나중에 읽을 때 체크섬을 다시 계산하여 변경되었는지 확인하십시오. 아마도 crc32는 Python zlib 표준 모듈에서 작동합니다. (나는 이것이 어떤 종류의 성능을 가지는지 확신 할 수 없다. 그래서 당신은 그것을 조사하고 싶어 할 것이다.)
-
==============================
4.신호음 : http://docs.djangoproject.com/ko/1.2/topics/signals/
신호음 : http://docs.djangoproject.com/ko/1.2/topics/signals/
post_save 신호를 사용하여 다른 모델의 관련 필드를 업데이트하여 이전 값을 저장할 수 있습니다. 그런 다음 다음 라운드에서 비교할 게 있습니다.
-
==============================
5.이 라이브러리에는 트랙 FK 조회가 있습니다.
이 라이브러리에는 트랙 FK 조회가 있습니다.
https://github.com/mmilkin/django_dirty_bits
from https://stackoverflow.com/questions/5240670/detect-if-a-model-has-changed-before-calling-save-in-django by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] matplotlib의 오버레이 imshow 플롯 (0) | 2018.11.13 |
---|---|
[PYTHON] matplotlib 색상 맵에서 특정 값의 색상을 재정의하는 방법 (0) | 2018.11.13 |
[PYTHON] 파이썬을 사용하여 JSON을 파싱하는 동안 'module'객체에 'loads'속성이 없습니다. (0) | 2018.11.13 |
[PYTHON] Sphinx 문서의 조건부 출력 (0) | 2018.11.13 |
[PYTHON] 파이썬에서 long의 부호있는 정수 값을 얻는 방법? (0) | 2018.11.13 |