모델 메소드에서 @property를 왜 쓰는지 확실히 알게됨.
문제가 될 것 같긴 했는데, 역시나 문제가 됐었다.
휴.. 핵심 부분을 건드리니, 고칠게 꽤 많았다. ㅠ
확실한건 계산이 필요한 것들은 모델에 메서드로 등록하고, @propery 데코레이션을 이용해서, 연산을 쉽게 할 수 있었다.
이거 안고쳤으면 진도 못나갈뻔..
공유일정 , 저장된 일정 로직도 빨리 바꿔야 하는데...ㅠ
def __str__(self):
return self.item_code
@property
def item_no(self):
day_code = self.d_date1.strftime("%m%d")
basiccode_fk = self.basiccode_fk.name
air_code = self.air_code
code_suffix = self.suffix_code
item = (day_code+'-'+basiccode_fk+air_code+code_suffix)
return item
@property
def item_code(self):
# day_code = self.d_date1.strftime("%m%d")
basiccode_fk = self.basiccode_fk.name
air_code = self.air_code
code_suffix = self.suffix_code
code = (basiccode_fk+air_code+code_suffix)
return code
def 요일(self):
return f'{date.strftime(self.d_date1, "%a")}'
@property
def d_daychange(self):
return (self.d_date2 - self.d_date1).days
# f'{}' 스트링을 안쓰면, date 객체로 리턴.->템플릿 필터에서 format 사용가능.
@property
def r_daychange(self):
# return f'{self.d_date1 + timedelta(self.stay - 2 + self.r_daychange)}'
return (self.r_date2 - self.r_date1).days
@property
def r_offset(self):
return (self.r_date1 - self.d_date1).days
def night(self):
return (self.r_date2 - self.d_date1 - (self.r_date2 - self.r_date1)).days
def period(self):
return (self.r_date2 - self.d_date1 ).days + 1
# success_url에도 사용되므로, urls.py 수정,삭제 후 어디로 갈지 고려
def get_absolute_url(self):
return f'/tour/{self.pk}/'
'erp 도전' 카테고리의 다른 글
장고 no such column 에러 (0) | 2023.05.07 |
---|---|
장고 폼 : 필드 (0) | 2023.05.05 |
forms.py , 체크박스 가로 정렬.. attr, choicefield, multiplechoicefield. (0) | 2023.05.04 |
일괄 수정 구현1) : 한 페이지에 멀티폼 구현 (0) | 2023.05.04 |
invalid literal for int() with base 10: b'00:00:00' (0) | 2023.05.02 |
장고 messages.add_message(request, ) (0) | 2023.05.01 |
상품 복사 구현 1)js전체선택, 폼 인풋 리스트 가져오기, 날짜(듀프,요일 체크) (0) | 2023.05.01 |
주화입마에 빠져서, 기본기 다지기를 병행하기로 (0) | 2023.04.28 |
댓글