2016-09-15 2 views
0

if 문에서 비교해야하는 템플릿에 두 개의 날짜가 있습니다.템플릿의 날짜 비교 Django

날짜 1 인 데이터 요소의 생성 분야에서 {{endjob.created | 날짜 "Ymd 일수"}} 배열에서 만약 2016년 9월 12일

날짜 2로 표시되는 {{pay_period.periods .0.0}} 2016-09-04로 표시

따라서 Date1> = Date2 인 경우에만 정보를 표시하도록 요청하고 있지만 데이터가 없습니다. 당신이 이유입니다

<tbody>  
{% for endjob in endjob %} 
     {% if endjob.created|date:"Y-m-d" >= pay_period.periods.0.0 %} 
      <tr> 
      <td><a href="{{ endjob.get_absolute_url }}" title="Goto Form">{{ endjob.event.name }}</a><br /></td> 
      <td>{{ endjob.event.job_no}} <br /></td> 
      <td>{{ endjob.event.job_type}} <br /></td> 
      <td>{{ endjob.code }} <br /></td> 
      <td>{{ endjob.crewid }}<br /></td> 
      <td>{{ endjob.workers }}<br /></td> 
      <td>{{ endjob.created|user_tz:user|date:"M j, Y" }}<br /></td> 
      </tr> 
     {% endif %} 
{% endfor %} 

답변

0

당신은 아마 두 개의 서로 다른 데이터 유형을 비교하는 :

당신이 내 코드입니다 장고

에서 템플릿의 날짜를 충돌하는 방법으로 도와 줄 수 아무것도 얻지 못해. endjob.created|date:"Y-m-d"을 수행하면 endjob.created을 문자열로 변환합니다. 예, {{ pay_period.periods.0.0 }}이 '2016-09-04'문자열로 표시됩니다. 그게 {{ }} 일입니다. 그러나 식 endjob.created|date:"Y-m-d" >= pay_period.periods.0.0에서 문자열 VS를 원래 데이터 형식 pay_period.periods.0.0과 비교합니다.

이 문제를 해결하려면 비교시 데이터 유형이 일치하는지 확인하십시오. endjob.created|date:"Y-m-d" >= pay_period.periods.0.0|date:"Y-m-d"으로 벗어날 수는 있지만 권장하지 않습니다. 이런 식으로해야하는 아주 좋은 이유가없는 한, 템플릿 수준이 아닌 다른 곳에서 비교를 수행 한 다음 부울을 전달하거나 so과 같은 부울 속성을 호출하는 것이 좋습니다.