#django #django-models #django-rest-framework #django-views #django-queryset
Вопрос:
Эй, ребята, я недавно начал работать над проектом, в котором есть две разные базы данных для хранения информации о пользователях и всего опубликованного содержимого. Я хочу извлечь и показать содержимое, опубликованное пользователями, которые находятся в списке текущих пользователей.
Если бы это было в одной базе данных, я мог бы использовать оператор join, подобный этому,
current_user = self.request.user.id
following_ids = self.request.user.following.values_list('id',flat=True)
posts = Content.objects.filter(Q(user_id__in=following_ids) | Q(user__id=current_user))
но поскольку мы используем две разные базы данных, как я могу выполнить аналогичный запрос для отображения содержимого?
Пожалуйста, помогите.
Спасибо
Комментарии:
1. Есть ли уже определенный маршрутизатор ? Если это так, вы можете сделать что-то вроде
Content.objects.using('myotherdb').filter(Q(user_id__in=following_ids) | Q(user__id=current_user.id))
2. Спасибо за ответ, да, маршрутизатор определен. Я проверю это и дам вам знать.
Ответ №1:
Если у вас уже есть a router
, вы можете просто использовать его в своем наборе запросов, чтобы указать, какую бд вы хотите использовать, чтобы:
Content.objects.using('myotherdb').filter(
Q(user_id__in=following_ids) | Q(user__id=current_user.id)
)