Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Как вернуть один объект а не кверисет ? [RSS Feed]

#1 Фев. 16, 2010 14:50:09

alexrussia
От:
Зарегистрирован: 2009-06-16
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Как вернуть один объект а не кверисет ?

Здравствуйте!!!
У меня такой вопрос :
Как вернуть один объект класса Newclass а не целый кверисет?
то есть в шаблон должен выводится один объект из класса Newclass соотвествующий урл ( или более точно объект должен соответствовать self.link возвращаемой get_absolute_url)

код - http://paste.in.ua/333/



Отредактировано (Фев. 16, 2010 14:55:15)

Офлайн

#2 Фев. 16, 2010 14:57:53

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Как вернуть один объект а не кверисет ?

1. Такая конструкция возвращает отдельный объект, а не queryset в отличии от фильтра:

Model.objects.get(<условие>)
Если по <условие> выбрано больше одного объекта или объектов не найдено - вывалятся соответствующие исключения.

2. Насчет URL, если я правильно понял вас, то помочь должен декоратор @permalink:
http://docs.djangoproject.com/en/1.1/ref/models/instances/#the-permalink-decorator



Отредактировано (Фев. 16, 2010 14:58:05)

Офлайн

#3 Фев. 16, 2010 15:30:43

alexrussia
От:
Зарегистрирован: 2009-06-16
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Как вернуть один объект а не кверисет ?

regall
1. Такая конструкция возвращает отдельный объект, а не queryset в отличии от фильтра:
Код:

Model.objects.get(<условие>)

Если по <условие> выбрано больше одного объекта или объектов не найдено - вывалятся соответствующие исключения.

2. Насчет URL, если я правильно понял вас, то помочь должен декоратор @permalink:
http://docs.djangoproject.com/en/1.1/re … -decorator

Отредактированно regall (Сегодня 15:58:05)
не точно поняли мне нужно:
в классе Newclass есть функция:
@models.permalink
def get_absolute_url(self):
return ('newpage',(),{'page':self.link})
возращает self.link
тоесть получается урл www.сайт.ru/link/
Мне нужно чтоб для этого урл в шаблон выводилось одно значение name, одно link , одно text (объявленные в классе Newclass)
я понимаю что с помощью Model.objects.get можно получить объект, в данном случае именно для меня условие труднным является:
Предполагая что должно быть Newclass.objects.get(link= ) а вот как правильно записать, то есть присвоить значение возращаемое get_absolute_url не знаю :(



Отредактировано (Фев. 16, 2010 15:33:50)

Офлайн

#4 Фев. 16, 2010 22:47:32

alexrussia
От:
Зарегистрирован: 2009-06-16
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Как вернуть один объект а не кверисет ?

все решил путем добавления одной строки в модуль views.py в функцию render:
new=get_object_or_404(Newclass,link=page) , у page убрать none , заменить Newclass.object.all() на new



Офлайн

  • Начало
  • » Django
  • » Как вернуть один объект а не кверисет ?[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version