【问题标题】:Django REST framework API: PrimaryKeyRelatedFieldDjango REST 框架 API:PrimaryKeyRelatedField
【发布时间】:2014-08-04 09:36:00
【问题描述】:

我对 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'

我确定这个错误是由“作者”字段引起的(如果你把它注释掉,错误就会消失)

那么这是否表明我不能在一般的Serializer中使用外键类型字段?

顺便说一句,如果你好奇我为什么将我的序列化器从 ModelSerializer 更改为 Serializer 是因为我想包含一些额外的字段(在任何模型中都不存在)以创建一个新的 Example 实例。默认情况下 .restore_object() 方法简单调用 Example(**attrs) 创建新实例,这会导致字段错误。

【问题讨论】:

    标签: python django serialization django-rest-framework


    【解决方案1】:

    你需要一个模型,因为你想序列化一个数据库关系。

    Here is the doc

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-10
      • 1970-01-01
      • 1970-01-01
      • 2015-10-19
      • 2017-11-09
      • 2018-03-01
      • 2015-09-13
      • 2020-04-21
      相关资源
      最近更新 更多