Django аннотирует поле на основе информации из другой базы данных без ORM
Я хочу аннотировать QuerySet информацией из другой таблицы базы данных
- Модель пользователя имеет поля 'user_id' в базе данных A с ORM .
- Таблица адресов имеет поля 'user_id' и 'address' в базе данных B без ORM, т.е. доступен только raw sql.
Итак, я хотел бы сделать что-то вроде этого:
Users.objects.annotate(addr="B__address if A_user_id == B__user_id")
возможно ли это вообще?
Я думаю
Users.objects.annotate(addr=RawSQL('select user_id, address from B where B.user_id=A.user_id'))
Я не думаю, что это будет работать, хотя.... Может ли RawSQL работать из другой БД?
Ор,
addr_dict = {'user_id1':'addr1', 'user_id2':'addr2', ...} # from raw sql of B
Users.objects.annotate(addr=addr_dict[usr_id]) # how can I do this?
Спасибо!