Как должен быть установлен queryset для связанных полей
У меня есть две модели book и chapter. Каждая книга может иметь много глав, поэтому модели выглядят следующим образом:
class Book(models.Model):
title = models.CharField(max_length=100)
class Chapter(models.Model):
title = models.CharField(max_length=100)
book = models.ForeignKey("books.Book", on_delete=models.CASCADE)
а сериализаторы такие:
class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = ["title"]
class ChapterSerializer(serializers.ModelSerializer):
book = serializers.PrimaryKeyRelatedField(queryset=Book.objects.all())
class Meta:
model = Chapter
fields = ["title", "chapter_number", "text", "book"]
Вот мой вопрос: Можно ли установить queryset=Book.objects.all())
для связанного поля?
Я имею в виду, что если количество книг увеличится, не будет ли проблемой запросить все книги, чтобы установить нужную книгу?
Сериализаторы могут быть вложенными.
class ChapterSerializer(serializers.ModelSerializer):
book = BookSerializer(read_only=True)
class Meta:
model = Chapter
fields = ["title", "chapter_number", "text", "book"]