Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Обернуть результаты запроса в model object [RSS Feed]

#1 Дек. 25, 2008 11:19:50

Evg
От:
Зарегистрирован: 2008-12-25
Сообщения: 346
Репутация: +  -1  -
Профиль   Отправить e-mail  

Обернуть результаты запроса в model object

Есть две модели:

class Tag(models.Model):
name = models.CharField(max_length=“20”, unique=True)

class Text(models.Model):
title = models.TextField(blank=False)
text = models.TextField(blank=False)
tags = models.ManyToManyField(Tag)

Далее я пишу sql запрос который их соединяет и отбирает результат, по разным условиям

select t.* from text t left join text_tags tt on t.id=tt.text_id where tt.tag_id=%s and t.text…(разные условия) order by t.title limit %s,%s
text_tags - таблица сгенеренная для отношения tags = models.ManyToManyField(Tag)

далее
rows = cursor.fetchall()

как мне теперь эти rows обернуть в Text - объекты ?

ps.

вообще на самом деле я делал выборку только id
select t.id from
и затем еще одну выборку такого вида:
Text.objects.filter(pk__in=ids)
но проблема в том что теряется порядок в котором были выбраны записи из 1-го кастомного запроса (Text.objects.filter(pk__in=ids) - возвращает не в порядке заданных идентификаторов ids, а в порядке увеличения первичного ключа, а мне нужно сохранить этот порядок) из-за этого и задаю этот вопрос.



Отредактировано (Дек. 25, 2008 11:21:03)

Офлайн

#2 Дек. 25, 2008 14:50:41

Evg
От:
Зарегистрирован: 2008-12-25
Сообщения: 346
Репутация: +  -1  -
Профиль   Отправить e-mail  

Обернуть результаты запроса в model object

круто) вообще после пхп от питона только положительные впечатления)
приложение посмотрю.

так а все же можно обертывать как то результат кастомного запроса в объекты модели? чтобы не делать Text.objects.filter(pk__in=ids), ведь это все же лишний запрос как я понимаю.



Офлайн

#3 Дек. 25, 2008 15:54:32

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Обернуть результаты запроса в model object

Evg
так а все же можно обертывать как то результат кастомного запроса в объекты модели?
Можно. Просто создать объекты модели.



Офлайн

  • Начало
  • » Django
  • » Обернуть результаты запроса в model object[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version