Форум сайта python.su
Вообщем такая ситуация,
-есть две модели.
-Обе смотрят в таблицы на разных базах.
-между ними есть отношение 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)
Отредактировано (Окт. 9, 2009 14:11:21)
Офлайн