Форум сайта python.su
0
Подскажите, как можно добавить данные в результат полученный с *.objects.all() ?
cat = Category.objects.all()Как можно в howToAdd добавить данные?
for howToAdd in cat:
pass
Офлайн
52
Скажите, чего вы хотите добиться подобными действиями.
Офлайн
0
fata1exЯ делаю небольшое меню навигации подобно http://rozetka.com.ua/ru/products/procategory/102/sor/p191r1098/index.html
Скажите, чего вы хотите добиться подобными действиями.
Офлайн
52
Это реализуется либо дополнительным полем в модели, либо методом в классе модели с декоратором @property (можно через менеджер модели, если такой есть), либо строится на лету во вьюшке и передаётся в шаблон. Добавлять данные в объект вовсе незачем.
PS. Уточню насчет “менеджеров”. Имелись в виду не джанговские менеджеры, а абстрактное понятие класса, который предоставляет методы для работы с моделью и её данными. Ну а так, конечно, нужно просто дописать свойство к модели категорий.
Отредактировано fata1ex (Авг. 6, 2012 22:20:18)
Офлайн
0
fata1ex
Я имел ввиду меню с чекбоксами в котором ссылки динамические.
Вот я пытаюсь обработать в вьюхе. Поскольку в шаблоне у меня просто не удастся такое сделать.
Мой вопрос еще актуален если кто знает, подскажите, как такое можно реализовать?
Отредактировано Saturn (Авг. 6, 2012 22:34:46)
Офлайн
52
Меню навигации и меню фильтрации при поиске - это разные вещи. Тут всё стандартно: для каждой категории строите свои фильтры, в зависимости от проставленных чекбоксов вьюшка, обрабатывая параметры от фронтэнда, строит запросы к базе. Если хочется урлы как в примере (что мне кажется довольно диким), лучше формировать урлы на фронтенде через js, пробегаясь по отмеченным чекбоксам. Имхо, лучше в урле вообще не передавать фильтрацию, а делать это запросом от js'a (например, сабмитом формы).
Мой вопрос еще актуален если кто знает, подскажите, как такое можно реализовать?Рад был помочь.
Отредактировано fata1ex (Авг. 6, 2012 22:54:33)
Офлайн
0
fata1ex
Спасибо за помощь.
Я так и делал, но без JS., обрабатывал url сперва в шаблоне,
в результате при выборе каждой ссылки чекбоксы отмечаются и в url добавляется категория
вот как выглядит при выборе четырех категорий.
http://127.0.0.1:8000/woman/cat/2-3-4-6/
а если учесть что еще есть резмеры и тд..
но остановился на том что в отмеченном чекбоксе нужно удалять данную категорию, а это не так уж просто сделать в шаблоне.
Проще сделать функцию которая генерирует надлежащий url в вьюхе, что и сделал.
Офлайн
221
Saturnинтересно, и что вы хотели этим добиться?:-) поясняю - оставляя здесь локальный адрес вашего проекта.
http://127.0.0.1:8000/woman/cat/2-3-4-6/
Офлайн
568
JOHN_16Я думаю, это пример URL-a, не более тогоSaturnинтересно, и что вы хотели этим добиться?:-) поясняю - оставляя здесь локальный адрес вашего проекта.
http://127.0.0.1:8000/woman/cat/2-3-4-6/
Офлайн
0
Правильно FishHook написал, конечно же это пример URL.
Уже разобрался как сделать.
Если сделать такой запрос
cat = *.objects.all().values()
for howToAdd in cat:
pass
Тогда тип howToAdd выходит словарь, следовательно вот и функция для изменениия url пока только для категорий
def createUrl(ObjectQS, sect, cat, catlist): for val in ObjectQS: if val['id'] in catlist: catlist.remove(val['id']) urlcat = sect + "/cat/" + "-".join(map(str, catlist)) val['urlcat'] = urlcat else: urlcat = sect + "/cat/" + cat + "-" + str(val['id']) val['urlcat'] = urlcat return ObjectQS
Офлайн