Найти - Пользователи
Полная версия: Как можно добавить данные в результат полученный с *.objects.all() ?
Начало » Django » Как можно добавить данные в результат полученный с *.objects.all() ?
1 2
Saturn
Подскажите, как можно добавить данные в результат полученный с *.objects.all() ?
cat = Category.objects.all()
for howToAdd in cat:
pass
Как можно в howToAdd добавить данные?
fata1ex
Скажите, чего вы хотите добиться подобными действиями.
Saturn
fata1ex
Скажите, чего вы хотите добиться подобными действиями.
Я делаю небольшое меню навигации подобно http://rozetka.com.ua/ru/products/procategory/102/sor/p191r1098/index.html
и поэтому мне проще передать нужный url для каждой категории чем обрабатывать в вьюхе.
fata1ex
Это реализуется либо дополнительным полем в модели, либо методом в классе модели с декоратором @property (можно через менеджер модели, если такой есть), либо строится на лету во вьюшке и передаётся в шаблон. Добавлять данные в объект вовсе незачем.

PS. Уточню насчет “менеджеров”. Имелись в виду не джанговские менеджеры, а абстрактное понятие класса, который предоставляет методы для работы с моделью и её данными. Ну а так, конечно, нужно просто дописать свойство к модели категорий.
Saturn
fata1ex
Я имел ввиду меню с чекбоксами в котором ссылки динамические.
Вот я пытаюсь обработать в вьюхе. Поскольку в шаблоне у меня просто не удастся такое сделать.

Мой вопрос еще актуален если кто знает, подскажите, как такое можно реализовать?
fata1ex
Меню навигации и меню фильтрации при поиске - это разные вещи. Тут всё стандартно: для каждой категории строите свои фильтры, в зависимости от проставленных чекбоксов вьюшка, обрабатывая параметры от фронтэнда, строит запросы к базе. Если хочется урлы как в примере (что мне кажется довольно диким), лучше формировать урлы на фронтенде через js, пробегаясь по отмеченным чекбоксам. Имхо, лучше в урле вообще не передавать фильтрацию, а делать это запросом от js'a (например, сабмитом формы).

Мой вопрос еще актуален если кто знает, подскажите, как такое можно реализовать?
Рад был помочь.
Saturn
fata1ex
Спасибо за помощь.
Я так и делал, но без JS., обрабатывал url сперва в шаблоне,
в результате при выборе каждой ссылки чекбоксы отмечаются и в url добавляется категория
вот как выглядит при выборе четырех категорий.
http://127.0.0.1:8000/woman/cat/2-3-4-6/
а если учесть что еще есть резмеры и тд..
но остановился на том что в отмеченном чекбоксе нужно удалять данную категорию, а это не так уж просто сделать в шаблоне.
Проще сделать функцию которая генерирует надлежащий url в вьюхе, что и сделал.
JOHN_16
Saturn
http://127.0.0.1:8000/woman/cat/2-3-4-6/
интересно, и что вы хотели этим добиться?:-) поясняю - оставляя здесь локальный адрес вашего проекта.
FishHook
JOHN_16
Saturn
http://127.0.0.1:8000/woman/cat/2-3-4-6/
интересно, и что вы хотели этим добиться?:-) поясняю - оставляя здесь локальный адрес вашего проекта.
Я думаю, это пример URL-a, не более того
Saturn
Правильно 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
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