Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 29, 2010 16:10:43

LinuxBoy
От:
Зарегистрирован: 2009-12-23
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

QuerySet и вывод данных в таблицу

Делаю поиск по базе:

def search_nick(request):
bans = Bans.objects.filter(Q(name = request.GET['s'])|Q(ip = request.GET['s']))
return render_to_response('search_results.html', {'bans': bans})
Получаю queryset, не врублюсь как распихать каждое поле в отдельную ячейку таблицы, так как получаю список. Выбрать отдельный элемент списка не получается, пишу:
bans[4]
IndexError: list index out of range
Если делать не через модели а через курсор и fetchmany то результат оправдывает ожидания и каждое значение в своей ячейке. А смоделями получается одной строкой.

Вот код шаблона:
<table border="1" align="left">

<tr>
<td>ID</td>
<td>BID</td>
<td>Сервер</td>
<td>Ник игрока</td>
<td>IP адрес</td>
<td>Снятие бана</td>
<td>Игра</td>
<td>Админ</td>
<td>Причина</td>
<td>Игр</td>
<td>Дата</td>
<td>Warns</td>
</tr>
{% for ban in bans %}
<td>{{ ban }}</td>
{% endfor %}
</table>



Отредактировано (Дек. 30, 2010 08:05:15)

Офлайн

#2 Дек. 29, 2010 16:26:04

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

QuerySet и вывод данных в таблицу

LinuxBoy
Делаю поиск по базе:
bans у вас это список объектов (т.е. строк). Каждый объект состоит из полей, объявленных в моделе. {{ bar }} это объект целиком. Вам надо взять из него нужные поля явным образом и распихать по ячейкам.

Так же можно использовать вызов values_list, чтобы чуть-чуть упростить этот процесс.



Офлайн

#3 Дек. 29, 2010 16:29:12

appetito
От:
Зарегистрирован: 2010-09-28
Сообщения: 147
Репутация: +  2  -
Профиль   Отправить e-mail  

QuerySet и вывод данных в таблицу

LinuxBoy
Делаю поиск по базе:
def search_nick(request):
bans = Bans.objects.filter(Q(name = request.GET['s'])|Q(ip = request.GET['s']))
return render_to_response('search_results.html', {'bans': bans})
Получаю queryset, не врублюсь как распихать каждое поле в отдельную ячейку таблицы, так как получаю список. Выбрать отдельный элемент списка не получается, пишу:
bans[4]
IndexError: list index out of range
Если делать не через модели а через курсор и fetchmany то результат оправдывает ожидания и каждое значение в своей ячейке. А смоделями получается одной строкой, вот так http://stats.dotabot.ru/bot_admin/search/?s=92.124.201.252

Вот код шаблона:
<table border="1" align="left">

<tr>
<td>ID</td>
<td>BID</td>
<td>Сервер</td>
<td>Ник игрока</td>
<td>IP адрес</td>
<td>Снятие бана</td>
<td>Игра</td>
<td>Админ</td>
<td>Причина</td>
<td>Игр</td>
<td>Дата</td>
<td>Warns</td>
</tr>
{% for ban in bans %}
<td>{{ ban }}</td>
{% endfor %}
</table>
Человек!!
намекаю:
<table border="1" align="left">

<tr>
<td>ID</td>
<td>BID</td>
<td>Сервер</td>
<td>Ник игрока</td>
<td>IP адрес</td>
<td>Снятие бана</td>
<td>Игра</td>
<td>Админ</td>
<td>Причина</td>
<td>Игр</td>
<td>Дата</td>
<td>Warns</td>
</tr>
{% for ban in bans %}
<tr>
<td>{{ ban.id }}</td>
<td>{{ ban.bid }}</td>
<td>{{ ban.server }}</td>
<td>{{ ban.nikname }}</td>
<td>{{ ban.ip }}</td>
и т.д.
</tr>
{% endfor %}
</table>



Офлайн

#4 Дек. 29, 2010 16:44:11

LinuxBoy
От:
Зарегистрирован: 2009-12-23
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

QuerySet и вывод данных в таблицу

Ох спасибо, постоянно на мелочи застопариваюсь, а оказалось что так все просто!



Офлайн

#5 Май 5, 2012 01:05:31

xxnikolayxx
От:
Зарегистрирован: 2011-12-05
Сообщения: 161
Репутация: +  0  -
Профиль   Отправить e-mail  

QuerySet и вывод данных в таблицу

У меня подобная проблемма, но сложнее.
Нужно вывести тотже QuerySet как товары в интернет магазинах.
Т.Е. На Одноу строку 6 полей.
Не пойму как это в цикл засунуть.

<table>
{% for wq in contacts %}
<tr>
<td>        
{{ wq.view }}{{ wq.type_thing }}<br>{{ wq.tissue }}<br>
</td>
<td>        
{{ wq.view }}{{ wq.type_thing }}<br>{{ wq.tissue }}<br>
</td>
<td>        
{{ wq.view }}{{ wq.type_thing }}<br>{{ wq.tissue }}<br>
</td>
</tr>
{% endfor %} 
</table>  

Отредактировано xxnikolayxx (Май 5, 2012 01:08:11)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version