2017-12-13 12 views
0

私はページ分割をfilter_alertから外したいと思います。 また、最後の結果はfilter_alertです。私はコードの下でもっと説明します。 これは私が3つのIDを持っているテーブルにそうドメイン views.pydjango TemplateViewはページングを使用して1つの結果しか得られません

class TestView(FormView, TemplateView): 
    template_name = 'home/main.html' 
    context_object_name = 'pages' 
    paginate_by = 10 
    form_class = DomainsForm 

    def get_context_data(self, **kwargs): 
     context = super(TestView, self).get_context_data(**kwargs) 

     list_tables = Domains.objects.all() 
     context['lists'] = list_tables 

     tbls_id = list_tables.exclude(status=0).values_list('id', flat=True) 
     context['alerts_list'] = Alerts.objects.all() 

     data = [] 

     for row_id in tbls_id: 
      cron_info = get_cron_info(row_id) 

      data.append(cron_info) 
      context['data'] = simplejson.dumps(data) 

      tbl = Domains.objects.get(id=row_id) 

      t_pages = create_pg("Pages_" + tbl.tablename) 

      query_pages = t_pages.objects.all() 
      context['pages'] = query_pages 

      get_alerts = create_alerts('Links_' + tbl.tablename + '_Alerts') 

      filter_alert = get_alerts.objects.all() 
      context['all_alerts'] = filter_alert 

     return context 

で私のコードで、それらの1 = 0のステータスを持っています。他の2つのidを取得してforループに渡したいと思います。しかし、私はテンプレートの結果を引き出すとき...私は最後のIDを取得します。 row_idを使用してIDを取得しています...印刷テストを行いました... 2 IDを返します... filter_alertsのすべての結果を表示したいときテンプレートの最後のID。

私はまたページネゴシエーションを実装したい...私は通常このコードを使用しますが、TemplateViewでは機能しません。

 all_alerts = get_alerts.objects.all() 

     page = request.GET.get('page', 1) 

     paginator = Paginator(all_alerts, 10) 
     try: 
      details = paginator.page(page) 
     except PageNotAnInteger: 
      details = paginator.page(1) 
     except EmptyPage: 
      details = paginator.page(paginator.num_pages) 

     context['all_alerts'] = details 

機能get_context_dataが、それには、要求を持っていないので、私はそれが動作していないことを知っています。私は別の関数を作成する必要がありますか? get_queryset関数を再作成してください。 わかりません... 助けてください。

 filter_data = [] 
     for row_id in tbls_id: 
      ... 
      filter_alert = get_alerts.objects.all() 
      filter_data.append(filter_alert) 
     print filter_data # it prints both objects 
     context['all_alerts'] = filter_data 

     return context 

template.html 中:あなたは

私は空のリストを使用し、それに追加 UPDATE ...テンプレートでは結果

コード私に与えていないありがとうall_alertsは動作しません

+0

のための答えを必要としています。 –

+0

k ...どうすれば修正できますか? – Omega

+0

しないでください?これは基本的なプログラミング上の問題です。ループの最後に、これらのコンテキスト変数に含めるものを正確に考えてみましょう。 –

答えて

0

ページ区切り部分について...答えを見つけました。 それは、self.requestだけではなく、要求する必要があります。

しかし、私はまださてあなたは、forループの各反復でのコンテキスト変数に割り当て直すので、当然、彼らは最後の値を持つことになり、他の問題

関連する問題