2012-02-12 5 views
0

나는 내 models.py에 다음 코드를 가지고 :이 템플릿 함수 호출이 작동하지 않는 이유는 무엇입니까?

class DealInstance(models.Model): 
    start = models.DateTimeField() 
    end = models.DateTimeField() 

    def get_remaining_time(self): 
     return end - start # returns a datetime.timedelta object 
내가 지금 내 템플릿의 get_remaining_time 기능을 사용하려면

: 내가 변경하는 경우에도,

<p>Time diff: {{ deal_instance.get_remaining_time.days }}</p> 

그러나이 작동하지 않습니다 get_remaining_time을 사용하여 문자열 리터럴을 반환합니다.

이 코드는 https://docs.djangoproject.com/en/dev/topics/templates/#accessing-method-calls을 기반으로합니다.

+0

오류 메시지가 있습니까? (예 :'return self.end - self.start'가 있어야합니다.) – second

+0

오류 메시지가 없습니다. 템플릿의 함수 호출에서 어떤 출력도 표시하지 않는다는 점을 제외하면보기를로드합니다. 'return self.end - self.start'는 차이를 만들지 않았습니다. – jtfairbank

+0

디버깅 측면에서 무엇을 했습니까? (예 : 메서드가 단순히 문자열을 출력하는 경우? datetime?) – second

답변

0

표현의 각 부분을 (템플릿 내에서) 인쇄 해보십시오. 예 : [{{deal_instance}}] [{{deal_instance.get_remaining_days}}] [{{deal_instance.get_remaining_days.days}}] (참고 : 빈 문자열을 볼 수 있도록 표현식 주위에 []를 사용합니다). 그 중 하나가 유효하지 않고 다소 다소 친숙한 템플릿 해석자가 단순히 빈 문자열을 반환한다는 것을 알 수 있습니다.

또한 반환 된 페이지의 소스를 살펴보십시오. 표현식의 출력이 객체 참조 인 경우 기본값으로 < some sort of class info > 형식으로 인쇄됩니다. 대부분의 브라우저에서는 위조 HTML 태그로 간주하여 무시합니다.

관련 문제