我是Django Rest Framework API的新手。
我的问题是我可以在serializers.Serializer子类中声明一个PrimaryKeyRelatedField吗?或者它必须在serializers.ModelSerializer子类?
例如,我曾经有过如下序列化程序:
class ExampleSerializer(serializers.ModelSerializer):
author = serializers.PrimaryKeyRelatedField(required=False)
## and more general fields
class Meta:
model = Example
工作正常。
然后我把它改为:
class ExampleSerializer(serializers.Serializer):
author = serializers.PrimaryKeyRelatedField(required=False)
## and more general fields
我收到错误:
AttributeError: 'SerializerOptions' object has no attribute 'model'
我确信这个错误是由'author'字段引起的(如果你注释掉错误就会消失)
这是否表明我不能在一般的Serializer中使用外键类型字段?
顺便说一句,如果你很好奇为什么我将我的序列化程序从ModelSerializer更改为Serializer是因为我想要包含一些额外的字段(在任何模型中都不存在)以创建一个新的Example实例。默认情况下.restore_object()方法简单调用Example(** attrs)创建新实例,这会导致字段错误。