2017-10-26 3 views
0

객체 목록에 대한 타임 라인을 작성하는 중입니다. 이 모델은 단순히 다음과 같이 배치되어Django의 날짜에 따라 객체를 다르게 처리하기.

class Note(models.Model): 

    added_by = models.ForeignKey(User) 
    context = models.TextField() 
    timestamp_added = models.DateTimeField(auto_now_add=True) 

그리고 나는 통해 다음 통과하는 타임 라인을 만들려면이를 사용하려면 : 일 조금 청소기를 만들기 위해, 그러나

notes = Note.objects.all() 

를, 내가 좋아하는 것 각 날짜의 헤더를 넣은 다음 해당 날짜의 모든 이벤트를 표시합니다.

뭔가

내보기에 다음과 같이

<ul class="timeline"> 
     <!-- timeline time label --> 
    {% for note in notes %} 

     {% if note.timestamp_added is first %} 
     <li class="time-label"> 
      <span class="bg-red"> 
       {{note.timestamp_added|date:"D m, Y" }} 
      </span> 
     </li> 
     {% endif %} 

     <li> 

      <i class="fa fa-envelope bg-blue"></i> 
      <div class="timeline-item"> 
       <span class="time"><i class="fa fa-clock-o"></i> {{note.timestamp_added}}</span> 
       <h3 class="timeline-header"><a href="#">{{note.added_by}}</a> added note</h3> 
       <div class="timeline-body"> 
        {{note.context}} 
       </div> 
      </div> 
     </li> 

    {% endfor %} 

    </ul> 

을하지만, 날짜의 첫 번째 인스턴스를 기반으로 여기에 if 문을 쓸 수있는 적절한 방법이?

답변

1

ifchanged 템플릿 태그를 찾고 있습니다.

{% ifchanged %} 
<li class="time-label"> 
    <span class="bg-red"> 
     {{note.timestamp_added|date:"D m, Y" }} 
    </span> 
</li> 
{% endif %} 
당신은 그들이 올바른 순서대로 확인하기 위해 날짜하여 검색어 세트를 주문 할 수 있습니다

:

notes = Note.objects.order_by('timestamp_added') 
관련 문제