Найти - Пользователи
Полная версия: Проблема с list_detail
Начало » Django » Проблема с list_detail
1
niro
Приветсвую!
Есть две модели 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
)
Александр Кошелев
В GV создается копия кверисета, а в ней соответственно уже другие объект. Сделайте size методом, в котором считайте что нужно.
niro
Daevaorn
В GV создается копия кверисета, а в ней соответственно уже другие объект. Сделайте size методом, в котором считайте что нужно.
Ничего не понял :(
Можно подробнее?
Александр Кошелев
niro
Можно подробнее?
Конечно можно.

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

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

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

Надеюсь так понятней будет.
niro
Да, теперь действительно понятно. Спасибо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB