erp 도전

모델 완전 뜯어 고침 ㅠㅠ

나도초딩 2023. 5. 3.

모델 메소드에서 @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}/'

댓글