Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 9, 2009 13:53:41

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

ManyRelatedManager get ids

Вообщем такая ситуация,
-есть две модели.
-Обе смотрят в таблицы на разных базах.
-между ними есть отношение ManyToMany

Я не могу использовать orm фичу по выбору связанных записей model1.model2s.all() (тк запрос использует join двух таблиц которые лежат в разных бд)

Вопрос: как можно используя ManyRelatedManager забрать список id связанного объекта?
(те чтобы запрос затрагивал только одну таблицу связку которая в одной бд.)
Те грубо говоря я хочу достать сначало связанные ид одной таблицы, и потом по ним с другой бд забрать реальные объекты.

Вообщем сейчас это выглядит так:

class m1(models.Model):
m2s = models.ManyToManyField(m2)


def get_m2s(self):
from django.db import connection
cursor = connection.cursor()
cursor.execute("SELECT m2_id FROM main_m1_m2s where m1_id = %s", [self.id])
rows = cursor.fetchall()
ids = []
for row in rows:
ids.append(str(row[0]))

return m2.objects.filter(id__in = ids)
Упростить можно? хотелось бы от sql избавится..



Отредактировано (Окт. 9, 2009 14:11:21)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version