Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 21, 2008 17:40:17

niro
От:
Зарегистрирован: 2006-10-04
Сообщения: 178
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с list_detail

Приветсвую!
Есть две модели Group и UserGroup. В первой - группы, во второй пользователи, зарегистрированные в этих группах. Цикл for присваивает каждой группе количество пользователей в ней.
Проблема - при использовании list_detail в шаблоне не отображается {{gr.size}}

def group_list(request, page=0):
from django.views.generic import list_detail
gr = Group.objects.all().order_by("name")
for k in gr:
k.size = UserGroup.objects.filter(group = k).count()
return list_detail.object_list(
request,
gr,
paginate_by = 10,
page = page
)



Офлайн

#2 Окт. 21, 2008 18:51:25

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

Проблема с list_detail

В GV создается копия кверисета, а в ней соответственно уже другие объект. Сделайте size методом, в котором считайте что нужно.



Офлайн

#3 Окт. 21, 2008 20:06:10

niro
От:
Зарегистрирован: 2006-10-04
Сообщения: 178
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с list_detail

Daevaorn
В GV создается копия кверисета, а в ней соответственно уже другие объект. Сделайте size методом, в котором считайте что нужно.
Ничего не понял :(
Можно подробнее?



Отредактировано (Окт. 22, 2008 09:06:40)

Офлайн

#4 Окт. 22, 2008 14:01:28

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

Проблема с list_detail

niro
Можно подробнее?
Конечно можно.

Судя по коду, который вы написали в модели Group нету поля size и вы его хотите посчитать при выводе и показать. Иначе скорей всего вы бы считали это при сохранение или же вызывали k.save() в цикле.

А коли так, то атрибут size который вы навешиваете к Group не виден внутри generic view, т.к. внутри gv происходит новый запрос данных, результат которого и попадает в шаблон. Но в объектах, которые попали в шаблон уже нет атрибута size.

Я вам предложил добавить к модели Group метод get_size, где вычислять нужное значение и возвращать. Тогда в шаблоне оно будет доступно как {{group.get_size}}

Надеюсь так понятней будет.



Офлайн

#5 Окт. 22, 2008 14:15:20

niro
От:
Зарегистрирован: 2006-10-04
Сообщения: 178
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с list_detail

Да, теперь действительно понятно. Спасибо!



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version