Тег шаблона Django для результата запроса модели - PullRequest
0 голосов
/ 25 июня 2009

Мне нужен простой тег, для отображения таблицы массивов любой модели, например:

{% table city_list %}

Кто-нибудь видит такие вещи?

Ответы [ 3 ]

1 голос
/ 06 ноября 2009

Вы можете попробовать django-tables приложение, которое позволяет вам делать следующее, учитывая модель Book:

# Define 
class BookTable(tables.ModelTable):  
  id = tables.Column(sortable=False, visible=False)  
  book_name = tables.Column(name='title')  
  author = tables.Column(data='author__name')  
  class Meta:  
      model = Book  

# In your views
initial_queryset = Book.objects.all()  
books = BookTable(initial_queryset)
return render_to_response('table.html', {'table': books})  


# In your template table.html
<table>  

<!-- Table header -->
<tr>  
   {% for column in table.columns %}  
   <th>{{ column }}</th>
   {% endfor %}
</tr>  

<!-- Table rows -->
{% for row in table.rows %}
<tr>
   {% for value in row %}
   <td>{{ value }}</td>
   {% endfor %}
</tr>
{% endfor %}

 </table>  

Я думаю, что вышеупомянутое гораздо более элегантно и самоочевидно, чем просто {% table book_list%}

0 голосов
/ 08 июня 2011

Я сделал вилку из django-tables, что делает это чрезвычайно простым. Вот простой пример:

В models.py:

from django.db import models

class City(models.Model):
    name = models.CharField(max_length=200)
    state = models.CharField(max_length=200)
    country = models.CharField(max_length=200)

In tables.py:

import django_tables as tables
from .models import City

class CityTable(tables.Table):
    class Meta:
        model = City

В views.py:

from django.shortcuts import render_to_response
from django.template import RequestContext
from .models import City
from .tables import CityTable

def city_list(request):
    queryset = City.objects.all()
    table = CityTable(queryset)
    return render_to_response("city_list.html", {"city_table": table},
                              context_instance=RequestContext(request))

В city_list.html:

{% load django_tables %}
{% render_table city_table %}
0 голосов
/ 17 июня 2010

Попробуйте общий вид, например http://www.djangobook.com/en/2.0/chapter11/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...