class Meta

Tiger士心知日 Django 开发——API ... 最后由 qq_渲染 于2015年11月10日回复

  • 2 解决
  • 1.3k 浏览

在序列化中我这样写能得到数据:

class BookSerializer(serializers.Serializer):
    name = serializers.CharField(max_length=100)
    title = serializers.CharField(max_length=100)
    author = serializers.CharField(max_length=100)

但是用Meta简化之后得到的数据就为空:

class BookSerializer(serializers.Serializer):
    class Meta:
        model = Book
        field = ('name', 'title', 'author')

这是为什么?

  • huang_xiaohen 2015年07月30日 回答 #1楼
  • 这是django自带的一个内部类Meta,在model里也有。他就是标识一些特殊属性,方法等。

    在你指定model=Book的时候,他会根据filed里的字段名,到Book里映射这些字段,将

    name = serializers.CharField(max_length=100)
    和name = models.CharField(max_length=100)
    对应起来.

    但是注意BookSerializer 里继承的是serializers.ModelSerializer,而不是原来的。

    有可能视频里遗漏了,没有修改.

  • 0 评论
  • qq_渲染 2015年11月10日 回答 #2楼
  • #1楼   @huang_xiaohen 

    本人觉得这个视频很有用,但是有两个问题很严重

    1.提供的源码下载下来是空的

    2.视频中出现错误,导致我这种新手找了这个错误几个小时,都无法发现。

    强烈要求回避这种问题

  • 0 评论