Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Как можно добавить данные в результат полученный с *.objects.all() ? [RSS Feed]

#1 Авг. 6, 2012 21:49:48

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

Как можно добавить данные в результат полученный с *.objects.all() ?

Подскажите, как можно добавить данные в результат полученный с *.objects.all() ?

cat = Category.objects.all()
for howToAdd in cat:
pass
Как можно в howToAdd добавить данные?



Офлайн

#2 Авг. 6, 2012 21:55:54

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Как можно добавить данные в результат полученный с *.objects.all() ?

Скажите, чего вы хотите добиться подобными действиями.



Офлайн

#3 Авг. 6, 2012 22:03:59

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

Как можно добавить данные в результат полученный с *.objects.all() ?

fata1ex
Скажите, чего вы хотите добиться подобными действиями.
Я делаю небольшое меню навигации подобно http://rozetka.com.ua/ru/products/procategory/102/sor/p191r1098/index.html
и поэтому мне проще передать нужный url для каждой категории чем обрабатывать в вьюхе.



Офлайн

#4 Авг. 6, 2012 22:12:38

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Как можно добавить данные в результат полученный с *.objects.all() ?

Это реализуется либо дополнительным полем в модели, либо методом в классе модели с декоратором @property (можно через менеджер модели, если такой есть), либо строится на лету во вьюшке и передаётся в шаблон. Добавлять данные в объект вовсе незачем.

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



Отредактировано fata1ex (Авг. 6, 2012 22:20:18)

Офлайн

#5 Авг. 6, 2012 22:31:15

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

Как можно добавить данные в результат полученный с *.objects.all() ?

fata1ex
Я имел ввиду меню с чекбоксами в котором ссылки динамические.
Вот я пытаюсь обработать в вьюхе. Поскольку в шаблоне у меня просто не удастся такое сделать.

Мой вопрос еще актуален если кто знает, подскажите, как такое можно реализовать?



Отредактировано Saturn (Авг. 6, 2012 22:34:46)

Офлайн

#6 Авг. 6, 2012 22:53:43

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Как можно добавить данные в результат полученный с *.objects.all() ?

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

Мой вопрос еще актуален если кто знает, подскажите, как такое можно реализовать?
Рад был помочь.



Отредактировано fata1ex (Авг. 6, 2012 22:54:33)

Офлайн

#7 Авг. 6, 2012 23:18:30

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

Как можно добавить данные в результат полученный с *.objects.all() ?

fata1ex
Спасибо за помощь.
Я так и делал, но без JS., обрабатывал url сперва в шаблоне,
в результате при выборе каждой ссылки чекбоксы отмечаются и в url добавляется категория
вот как выглядит при выборе четырех категорий.
http://127.0.0.1:8000/woman/cat/2-3-4-6/
а если учесть что еще есть резмеры и тд..
но остановился на том что в отмеченном чекбоксе нужно удалять данную категорию, а это не так уж просто сделать в шаблоне.
Проще сделать функцию которая генерирует надлежащий url в вьюхе, что и сделал.



Офлайн

#8 Авг. 7, 2012 01:55:21

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Как можно добавить данные в результат полученный с *.objects.all() ?

Saturn
http://127.0.0.1:8000/woman/cat/2-3-4-6/
интересно, и что вы хотели этим добиться?:-) поясняю - оставляя здесь локальный адрес вашего проекта.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#9 Авг. 7, 2012 05:36:36

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как можно добавить данные в результат полученный с *.objects.all() ?

JOHN_16
Saturn
http://127.0.0.1:8000/woman/cat/2-3-4-6/
интересно, и что вы хотели этим добиться?:-) поясняю - оставляя здесь локальный адрес вашего проекта.
Я думаю, это пример URL-a, не более того



Офлайн

#10 Авг. 7, 2012 07:50:18

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

Как можно добавить данные в результат полученный с *.objects.all() ?

Правильно 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



Офлайн

  • Начало
  • » Django
  • » Как можно добавить данные в результат полученный с *.objects.all() ?[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version