2016-04-12 5 views
-1

空のクエリーセットを取得すると、「表示する結果が表示されません。クエリーセットが空のときに「結果が表示されません」を返します。django

class View(ProjectContextMixin, TemplateView): 
    template_name = "site/project_detail.html" 
    model = Ticket() 

    def get_data(self, **kwargs): 
     data = super(View, self).get_data(**kwargs) 
     project = self.project_assigned() 
     if project.tickets.all: 
      context.update({ 
       "project": project, 
       "tickets": project.tickets.all() 
      }) 
     return data 

と私のテンプレート:

<div class="large-12 large-centered columns"> 
<div class="row"> 
    <h2>{{ project.heading}} <small><a href="{% url "project-update" project_id=project.pk %}">edit</a></small></h2> 
</div> 
<div class="row"> 
    <table> 
     <thead> 
      <tr> 
       <th width="1200">Title of assignment</th> 
       <th width="1200">Assigned to</th> 
       <th></th> 
      </tr> 
     </thead> 
     <tbody> 
      {% for ticket in tickets %} 
      <tr> 
       <td>{{ ticket.title }}</td> 
       ....... 

私はテンプレートを壊さないように、どのように私は私のコンテキストを調整する必要があります。 リダイレクトを別のビューに使用しようとしましたが、別のテンプレートをも与える必要がありますか?

+0

私はちょうど約20分前に投稿したものと同じですが、回答をコピーして貼り付けたいとは思いません – Sayse

+0

あなたの問題はあなたの 'ticket_id'は空ですが正規表現のパターンはurlパターンと一致します。それを解決すれば、問題は解決されます。 – karthikr

+0

あなたの編集はまったく別の問題でした。別の質問がある場合は、新しい質問としてそれを求めてください。もしShang Wangの答えがこの*問題を解決すれば、あなたはそれを受け入れることを考慮すべきです – Sayse

答えて

2

あなたが行うことができます:

{% for ticket in tickets %} 
    <tr><td>{{ ticket.title }}</td></tr> 
{% empty %} 
    <tr><td>No results to show.</td></tr> 
{% endfor %} 

Django template tag emptyを。

関連する問題