artgrosvil
@artgrosvil
#dev #programming #student #startups #chill

Как создать связанные запросы в django rest?

Здравствуйте. Сразу к примеру.

Есть модель A и модель B.
Клиент, который работает с моим АПИ, хочет получить данные из модели B, но у него нет никаких данных для этого, что бы сделать запрос. Поэтому он идет в модель A, получает данные, и на основе этих данных идет в модель B и получает данные от туда.

В итоге два запроса. А если таких моделей 5? Приходится выполнять пять запросов минимум. Есть ли какая то практика для реализации связанных запросов в Django Rest?
  • Вопрос задан
  • 194 просмотра
Пригласить эксперта
Ответы на вопрос 1
idegree
@idegree
Senior Workaround Developer
Я продозреваю вам нужно что-то вроде этого:
class CompanyContactSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.CompanyContact
        fields = ('id', 'type', 'value')


class CompanyDetailSerializer(serializers.ModelSerializer):
    contacts = CompanyContactSerializer(many=True, read_only=True)
    class Meta:
        model = models.Company
        fields = ('id', 'name', 'contacts')

Так при запросе компании, вы сразу получаете и её контакты. Подробнее в документации.
Однако, стоит учитывать, что при этом запросов к БД станет больше, но их можно попытаться уменьшить.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы