2016-04-07 2 views
2

Django_Table2要素のフィールドをいくつか選択したいと思っています。私はdjango_table2のウェブサイトdjango_table2を見てきましたが、django_table2要素で使用されるフィールドの数を制限する方法についてはあまり見つけられません。ここに私のコードです。Django Django_Tables2フィールド

これは私のプロジェクトview.pyです:

​​

これは私のindex.htmlテンプレートです:私はdjango_tables2に表示されているフィールド/列の数を制限するにはどうすればよい

{% load render_table from django_tables2 %} 
{% block content %} 
    <h1>Projects</h1> 
    <ul> 
    {% for project in project_list %} 
     <li><a href="{% url 'project:detail' project.id %}">{{ project.name }}</a></li> 
    {% endfor %} 

    </ul> 
    {% render_table project_list %} 
{% endblock %} 

+0

私の答えが参考になった場合は、それを優先回答として選択することができます。ありがとう。 – LhasaDad

答えて

1

tutorialは、「単純ながら、クエリーセットを直接{%render_table%}に渡すことはカスタマイズを許可しません。そのためには、テーブルクラスを定義する必要があります。 APIは、Table.Metaには、ModelFormsと同様にフィールドを持ち、属性を除外していることが示されています。どこへ行く

1

一つの方法は、テーブルクラスを持っているとメタを追加することですあなたが望むの列削除する除外:ビューロジックに続いて

class MyTable(tables.Table): 
    class Meta: 
     model = MyModel 
     exclude = ('unwanted_col', 'unwanted_col2',) 

を持っている:

table = MyTable(data_list) 
RequestConfig(request).configure(table) 
return render(request, 'myapp/index.html', {'table': table}) 

輸入snippitsに関連するこのコードを含むviews.pyファイルで使用してください:

import django_tables2 as tables 
from django_tables2.config import RequestConfig 
from django.shortcuts import render 

とiインデックスhtmlにはレンダリングテーブルがあります。

+0

あなたの返信ありがとう! "class MyTable"の部分は、自分のプロジェクトのアプリケーションフォルダのtables.pyに入れておく必要がありますか?そして、ビューのロジック部分は、私のクラスIndexViewの正しいに行く必要がありますか?また、これを機能させるために何かを含める必要がありますか? – user908759

+0

私は自分のview.pyファイルに鉱山を持っています。しかし、あなたがビューにインポートする限り、それは重要ではありません。すべては、レンダリングとRequestConfigのインポートを含めるように編集します。 – LhasaDad

+0

投稿する投稿をインポートします。 – LhasaDad

関連する問題