2017-05-01 3 views
-1

Ich bin neu im Django und stolpere durch die Erstellung meiner ersten Site. Ich verwende django-tables2, um eine Tabelle anzuzeigen, und es scheint zu funktionieren (die Tabelle erscheint, es ist sortierbar).django-tables2 exclude & field funktioniert nicht

Außer ich kann nicht scheinen, irgendetwas anzupassen. Ausschließen, Feld und Sequenz funktionieren nicht. Kann keine ausführlichen Namen von Spalten ändern.

TABLE:

import django_tables2 as tables 
from sl_overview.models import DailyslSumm 

class slsummTable(tables.Table): 

    class Meta: 
     model = DailyslSumm 
     exclude = ('index') 

VIEW:

class sl_summ(SingleTableView): 

    model = DailyslSumm 
    context_object_name = 'slsummdb' 
    table_class = slsummTable 

TEMPLATE:

{% load render_table from django_tables2 %} 
{% render_table slsummdb %} 

Die im Code ausschließen oben funktioniert nicht. Die Spalte ist immer noch da. Das Verwenden des Felds passt Spalten auch nicht an. Ich bin sicher, ich vermisse etwas Einfaches, danke für jede Hilfe.

Antwort

3

Sie müssen sicherstellen, exclude ist ein Tupel (oder eine Liste) und keine Zeichenfolge. Wenn Sie Klammern mit einer Zeichenfolge verwenden, wird der resultierende Wert ein String sein, nicht ein Tupel wie man erwarten könnte:

Python 3.5.2 (default, Nov 17 2016, 17:05:23) 
>>> ('foo') 
'foo' 
>>> ('foo',) 
('foo',) 
>>> 

In Ihrem Fall sollten Sie ein Komma nach 'index' wie folgt hinzu:

class slsummTable(tables.Table): 

    class Meta: 
     model = DailyslSumm 
     exclude = ('index',) # <- note the extra comma here 
+0

Dies, kombiniert mit dem Erstellen der Tabellenklasse, funktionierte. Vielen Dank! – SuperClueless