django.contrib.admin
のコードと組み込みの管理サイトでテーブルを作成する方法を確認してください。管理サイトでは、フィールドの表示方法と表示するフィールドを変更するための追加機能が多数追加されていますが、どのように動作するかを理解する必要があります。
あなたが使いたいと思う最も簡単な方法は、テンプレートに使用するヘッダのリストと、values_list
メソッドで呼び出されるクエリセットを送信することです。 values_list
は、一連のフィールド名を取り、モデルオブジェクトの代わりにフィールド値のタプルを生成する別のクエリセットを返します。たとえば、あなたのPersonDynamic
ルックスは次のように言う:
class PersonDynamic(Model):
id = AutoField()
name = CharField()
likes_python = BooleanField()
次に、あなたのテンプレートにこのような何かを送ることができます:
fields = ['id', 'name', 'likes_python']
qs = PersonDynamic.objects.values_list(*fields)
context = Context({'headers': fields, 'rows': qs})
template.render(context)
そして、あなたのテンプレートが行うことができます:
<table>
<tr>{% for item in header %}<th>{{ item }}</th>{% endfor %}</tr>
{% for row in rows %}
<tr>{% for cell in row %}<td>{{ cell }}</td>{% endfor %}</tr>
{% endfor %}
</table>
をするためにあなたのこれは大きなテーブルでは問題になります。このような大きなリストをループするには時間とメモリが必要です。ページごとにX項目だけが表示されるページネーションのような戦略が一般的に使用されます。
なぜdownvotes? – Ben