Как запрашивать содержимое(сообщения/видео) людей, за которыми пользователь следует с помощью Django ORM, когда сведения о пользователе и список подписчиков находятся в отдельной базе данных

#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)
)