2016-05-04 10 views
2

Ich versuche, meine Tabellen in meiner Django-App in datatables using django-tables2 zu konvertieren.Django Datatables view

Im meine campaigns.py Ansicht Ich habe:

class CampaignListView(FacebookAdInit): 
    """ CampaignListView for viewing all the campaigns""" 

    def get(self, request, *args, **kwargs): 
     ad_account = self.get_ad_account(kwargs.get('ad_account_id')) 

     campaigns = self.get_campaigns(ad_account.get('id')) \ 
      if ad_account else None 
     context = {'campaigns': campaigns, 'ad_account': ad_account} 

     return render(request, 'app/campaigns/index.html', context) 

Im mein campaigns/index.html ich habe:

{% extends "app/empty_page.html" %} 
{% load render_table from django_tables2 %} 
{% block content %} 
      {% if ad_account %} 
         {% render_table context %} 
      {% endif %} 

{% endblock %} 

Doch diese mir den Fehler gibt: Expected table or queryset, not 'str'. Jede mögliche Hilfe wird greately geschätzt.

Im Moment erzeugen ich die Tabelle dieses Stück Code verwendet:

   <table class="table table-bordered table-striped" id="campaigns"> 
        <thead> 
        <tr> 
         <th> #</th> 
         <th> Campaign Name</th> 
         <th> Campaign Objective</th> 
         <th> Campaign Effective Status</th> 
        </tr> 
        </thead> 
        <tbody> 
        {% for campaign in campaigns %} 
         <tr> 
          <td> {{ forloop.counter }} </td> 
          <td> 
           <a href="/ad_accounts/{{ ad_account.id }}/campaigns/{{ campaign.id }}/ad_sets"> 
            {{ campaign.name }} </a> 
          </td> 
          <td> {{ campaign.objective }}</td> 
          <td> {{ campaign.effective_status }} </td> 
         </tr> 
        {% endfor %} 
        </tbody> 
       </table> 
+0

Post gesamte Rückverfolgung bitte? – trinchet

+0

Traceback zeigt was ich gepostet habe. Die Fehlermeldung und die Zeile "{% render_table context%}" ist highlited – newkid101

Antwort

1

Sie sollten eine Table Instanz übergeben oder an den render_table Tag QuerySet.

{% render_table campaigns %} 
+0

Das ist ein Anfang. Es wird jedoch nichts generiert, d. H. Ich sehe eine leere Seite (das Debug zeigt keine Fehler an) – newkid101

+0

Entschuldigung, ich kann keine anderen Probleme feststellen. Deine Frage enthält viele Dinge, die du nicht gezeigt hast (zB 'self.get_campaigns (ad_account.get ('id')')), also könnte das Problem anderswo sein. Versuche eine wirklich einfache Version zu bekommen, die zuerst funktioniert, wie das Tutorial Verwenden Sie zum Beispiel 'Campaign.objects.all() [: 10]' für das Abfrage-Set und verwenden Sie keine Template-Vererbung, bis Sie sicher sind, dass es funktioniert. – Alasdair

+0

Ihr Code zeigt nichts an, das versucht, auf "ad_accounts" zuzugreifen (mit einem "s"). Ihre Ansichten und Vorlagen enthalten nur "ad_account". – Alasdair