【问题标题】:How should queryset be set for related fields相关字段应该如何设置queryset
【发布时间】:2022-12-04 00:46:53
【问题描述】:

我有两个模型命名章节.每本书可以有很多章节,所以模型是这样的:

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())可以吗? 我的意思是,如果书籍的数量变大,查询所有书籍以设置正确的书籍不会有任何问题吗?

【问题讨论】:

    标签: django django-models django-rest-framework django-serializer django-model-field


    【解决方案1】:

    序列化程序可以嵌套。

    class ChapterSerializer(serializers.ModelSerializer):
        book = BookSerializer(read_only=True)
        class Meta:
            model = Chapter
            fields = ["title", "chapter_number", "text", "book"]
    

    【讨论】:

      猜你喜欢
      • 2019-01-15
      • 1970-01-01
      • 2013-07-30
      • 2022-06-17
      • 2021-09-03
      • 2022-12-10
      • 2013-05-18
      • 2015-10-10
      • 1970-01-01
      相关资源
      最近更新 更多