web-dev-qa-db-ja.com

Djangoのデータベースからテーブルを表示する

データベーステーブルの情報をWebページにテーブル形式でどのように表示しますか? Djangoでこれを行う簡単な方法はありますか、より複雑なアプローチが必要ですか。具体的には、データベーステーブルの列と行をビジュアルテーブルにどのように移植しますか。それはURLから見ることができますか?

39
randrumree

最も簡単な方法は、 for loop template tag を使用することです。

与えられたビュー:

def MyView(request):
    ...
    query_results = YourModel.objects.all()
    ...
    #return a response to your template and add query_results to the context

このようなスニペットをテンプレートに追加できます...

<table>
    <tr>
        <th>Field 1</th>
        ...
        <th>Field N</th>
    </tr>
    {% for item in query_results %}
    <tr> 
        <td>{{ item.field1 }}</td>
        ...
        <td>{{ item.fieldN }}</td>
    </tr>
    {% endfor %}
</table>

これはすべて、Djangoチュートリアルの Part で説明されています。ここで Part 1 を開始する必要があります。

63
j_syk
$ pip install Django-tables2

settings.py

INSTALLED_APPS , 'Django_tables2'
TEMPLATES.OPTIONS.context-processors , 'Django.template.context_processors.request'

models.py

class hotel(models.Model):
     name = models.CharField(max_length=20)

views.py

from Django.shortcuts import render

def people(request):
    istekler = hotel.objects.all()
    return render(request, 'list.html', locals())

list.html

{# yonetim/templates/list.html #}
{% load render_table from Django_tables2 %}
{% load static %}
<!doctype html>
<html>
    <head>
        <link rel="stylesheet" href="{% static 
'ticket/static/css/screen.css' %}" />
    </head>
    <body>
        {% render_table istekler %}
    </body>
</html>
9
Anar Ali