У меня в API есть два маршрута, которые выглядят так:
http://mywebsite/websites/website_1/annonces/
http://mywebsite/websites/website_2/annonces/
Мне нужно сделать ListAPIView, объединяющий эти 2 маршрута, но каждый маршрут вызывает свою собственную базу данных.
Две базы данных созданы с использованием одной и той же модели django. Я сделал две базы данных, потому что они лучше подходят моей архитектуре.
Проблема в том, что в моих базах данных нет столбца, указывающего на веб-сайт, с которого получены записи. Записи различаются только по именам своей базы данных.
Я хочу получить все записи по одному маршруту, но также могу сказать, из какой они базы данных, в ответе json.
class Annonce(models.Model):
annonce_type = models.CharField(max_length=200, blank=True, null=True)
annonce_id = models.CharField(unique=True, max_length=200, blank=True, null=True)
url = models.TextField(blank=True, null=True)
region = models.TextField(blank=True, null=True)
class AnnoncesList(generics.ListAPIView):
authentication_classes = ()
permission_classes = ()
serializer_class = AnnonceListSerializer
pagination_class = LargeResultsSetPagination
filter_backends = (DjangoFilterBackend,)
filterset_fields = ('advert_type', 'asset_type', 'sales_type', 'price', 'area', 'department', 'department_id', 'city', 'postal_code')
def get_queryset(self):
queryset = Annonce.objects.using(self.kwargs["website_name"]).all()
return queryset