从数据库中显示Django中的表

时间:2011-09-02 17:19:25

标签: django database

如何在网页上以表格格式显示数据库表中的信息?有没有一种简单的方法在django中执行此操作,或者它需要更复杂的方法。更具体地说,您如何将数据库表中的列和行几乎移植到可从URL中看到的可视表?

3 个答案:

答案 0 :(得分:61)

最简单的方法是使用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 3中有所介绍。如果你需要从那里开始,这里是Part 1

答案 1 :(得分:7)

$ 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>

答案 2 :(得分:0)

如果要上表,请执行以下步骤:-

views.py:

def view_info(request):
    objs=Model_name.objects.all()
    ............
    return render(request,'template_name',{'objs':obj})

.html页面

 {% for item in objs %}
    <tr> 
         <td>{{ item.field1 }}</td>
         <td>{{ item.field2 }}</td>
         <td>{{ item.field3 }}</td>
         <td>{{ item.field4 }}</td>
    </tr>
       {% endfor %}