2012-08-02 3 views
0

Django 템플릿 내에서 보너스 만료일을 표시하려고합니다. 현재 opening_date는 datefield로 저장되고 보너스 term은 integerfield로 저장됩니다. 불행하게도 바로 개방 날짜에 보너스 용어를 추가하려고하면 실패하고 내가 지금까지 가지고 먼은 다음과 같습니다Django 템플릿의 Datefield에 IntegerField 추가

{{product_form.instance.opening_date|add:product_form.instance.bonus_term}} 

난 그냥 달에 추가 시도했지만 불행히도 나는 전체 날짜가 표시 반환해야합니다.

개막일은 2012 년 1 월 1 일이고 보너스 기간은 12 일이라고 말하고 싶습니다. 2012 년 1 월 1 일의 만료일을 표시하고 싶습니다. 나는 이것이 아마도 데이터베이스에있는 것이 더 좋다고 생각하지만, 이전에 설정되었던 방식으로 인해 기존의 많은 양의 기존 데이터가 존재하지 않을 것입니다.

감사합니다. 모델에서

:

class product(models.Model): 
    opening_date = ... 
    bonus_term = ... 
    def expire_date(self): 
     return self.opening_date + timedelta(days = self.bonus_term) 

+0

날짜/시간 필드를 문자열로 포맷 한 다음 추가를 사용하여 텍스트 연결 –

+0

감사합니다. 장고의 기능이 누락되었다는 것을 알았습니다. 사용 될수있다. –

+0

솔루션을 가지고 돌아 왔을 때 게시하십시오;) –

답변

0

나는 당신의 시나리오에 가장 우아한 해결책은 다음 템플릿의 메소드를 호출, 날짜 만료 calcule 모델에 model method을 만드는 것입니다, 생각 템플릿에서 :

코드의 다른 줄에이 메서드를 호출해야합니다.

+0

완벽한 변경 사항은 timedelta 코드 대신 relativedelta를 사용하는 것입니다. return self.opening_date + relativedelta months = + self.bonus_term) 고맙습니다. –

+0

@Jeff, 최종 솔루션을 공유해 주셔서 감사합니다. 문안 인사. – danihp