2017-06-03 14 views
0

SingleTableMixinを使用すると、モデルだけがレンダリングされたテーブルに渡されます。私はそれが壊れるまで** line =すべての行をコメントアウトしました。** model = Statはそれが動作するために必要な唯一のものです。 django-tables2は動作しません。SingleTableMixin

私はテーブルが

tables.py 

class StatTable(tables.Table): 

class Meta: 
    model = Stat 
    data = Stat.objects.all() 
    exclude = ('id',) 
    attrs = {'class': 'table table-hover table-condensed'} 

views.py 

class StatTableMixin(SingleTableMixin): 
    table_class = StatTable 
    context_table_name = 'stat_table' 

class AircraftList(ListView, StatTableMixin): 
    model = Aircraft 
    template_name = "aircraft/aircraft_list.html" 

def get_context_data(self, **kwargs): 
    context = super(AircraftList, self).get_context_data(**kwargs) 
    context['title'] = "D-> | Aircraft" 
    context['stat_table'] = Stat.objects.all() 
    return context 
+0

'data'は' Table.Meta'の有効な属性ではありません。 – Jieter

答えて

0

あなたはカスタムcontext_table_nameを使用しているモデルを除いて、単にクラスのメタ情報のいずれかなしに、レンダリングされているので、私の場合と同様の質問が、特に何を見て、割り当てるQuerySetStat.objects.all() )をget_context_data()に入力します。これにより、django-tables2はデフォルトのビューであるquerysetをレンダリングしますが、必要なカスタムビューではありません(StatTable)。

クエリーセットをcontext['stat_table']に割り当てずにListView.get_queryset()を使用して、正しいクエリーセットを準備してテーブルにデータを入力することで、これを修正できます。

関連する問題