Форум сайта python.su
Есть две модели:
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)
Офлайн
круто) вообще после пхп от питона только положительные впечатления)
приложение посмотрю.
так а все же можно обертывать как то результат кастомного запроса в объекты модели? чтобы не делать Text.objects.filter(pk__in=ids), ведь это все же лишний запрос как я понимаю.
Офлайн
EvgМожно. Просто создать объекты модели.
так а все же можно обертывать как то результат кастомного запроса в объекты модели?
Офлайн