[PYTHON] Django : 사후 저장 신호를 사용하여 저장 대 커스터마이즈 할 때
PYTHONDjango : 사후 저장 신호를 사용하여 저장 대 커스터마이즈 할 때
데이터베이스에 일련의 테스트와 사례가 있습니다. 검사가 폐기 될 때마다 검사가 끝나고 검사의 하위 사례도 끝나야합니다. 이 작업을 수행하는 데 두 가지 방법이 있습니다.
1) 저장 기능을 수정하여 최종 날짜 하위 사례를 종료하십시오. 2) 저장된 테스트 모델을 수신하는 수신자를 만든 다음 하위 사례를 종료합니다.
다른 것보다 다른 것을 사용해야하는 이유는 무엇입니까?
편집 :이 블로그 게시물은 모델의 주어진 값을 확인할 때마다 save 메서드를 사용하라는 제안을 보았습니다. end_date를 확인하고 있으므로 맞춤 저장을 사용해야한다고 제안 할 수 있습니까?
Edit2 : 또한 레코드의 경우 전체 계층 구조는 Protocol -> Test -> Case -> Planned_Execution이며 end_dated 일 때마다 모든 자식도 endDate 여야합니다. 나는 내가 기본적으로 똑같이하는 것을 끝낼 것이라고 상상한다.
Edit3 : 현재 save ()가 endDating 테스트인지 여부를 알기 위해서는 이전 데이터와 새 데이터에 대한 액세스 권한이 필요하므로 사용자 정의 저장을 사용했습니다. 다음은 그 모습입니다.
def save(self):
"""Use a custom save to end date any subCases"""
try:
orig = Test.objects.get(id=self.id)
enddated = (not orig.end_date) and self.end_date is not None
except:
enddated = False
super(Test, self).save()
if enddated:
for case in self.case_set.exclude(end_date__isnull=False):
case.end_date = self.end_date
case.enddater = self.enddater
case.save()
해결법
-
==============================
1.나는 일반적으로 다음과 같은 경험 법칙을 사용한다.
나는 일반적으로 다음과 같은 경험 법칙을 사용한다.
-
==============================
2.나의 이해에서 신호는 모듈을 분리하는 수단이다. 귀하의 작업이 하나의 모듈에서만 발생하는 것으로 보입니다.
나의 이해에서 신호는 모듈을 분리하는 수단이다. 귀하의 작업이 하나의 모듈에서만 발생하는 것으로 보입니다.
from https://stackoverflow.com/questions/5597378/django-when-to-customize-save-vs-using-post-save-signal by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬 - 문자열에서 연속 된 경우에만 중복을 제거하는 방법? (0) | 2018.11.23 |
---|---|
[PYTHON] 판다는 문자열에서 숫자를 추출합니다. (0) | 2018.11.23 |
[PYTHON] csv의 컬럼에 파이썬리스트 작성하기 (0) | 2018.11.22 |
[PYTHON] SQLAlchemy ORM에서 열 데이터 형식을 어떻게 확인할 수 있습니까? (0) | 2018.11.22 |
[PYTHON] numpy에 대한 메모리 프로파일 러 (0) | 2018.11.22 |