【问题标题】:DjangoRestFramework - Loading specific columns, and saving an entire objectDjangoRestFramework - 加载特定列,并保存整个对象
【发布时间】:2014-04-24 01:59:59
【问题描述】:

我正在开发一个 API(使用 DjangoRestFramework),我希望用户能够加载他们的项目列表,但我只想从数据库中加载几列(比如说 ID、标题、类别、假设他们访问的 URL 是 api/items)。

我还希望他们能够向这个 URL 发送一个 POST 请求,其中不仅包含页面加载的列,还包含额外的列(例如:带有 Title、Category、Date、Rating)。如果他们想查看完整的项目,包括这些额外的详细信息,他们可以查看单个项目页面 (api/items/246)。

据我目前的理解,您选择加载哪些字段的方式是通过模型的 model.py 文件中的序列化程序类。因此,我创建了一个 listSerializer 和一个 detailSerializer,其中包含我要为元类中列出的每个字段加载的字段。这些可以很好地获取我想要的信息。

我的问题是当用户尝试发送他们的 POST 请求添加新项目时:唯一保存的字段是 listSerializer 的元类中列出的字段。如何保存整个对象?

在此先感谢,非常感谢任何帮助。

【问题讨论】:

    标签: python django django-rest-framework


    【解决方案1】:

    您可以将字段的write_only 属性设置为True,这将完全解决您的问题。只写字段不会显示在响应中,但会接受您发布的数据。

    class ListSerializer (serializers.HyperlinkedModelSerializer):
        title = serializers.CharField(write_only=True)
    

    【讨论】:

    • 非常感谢!一开始我使用它有点困难,原来我使用的是旧版本的 DjangoRestFramework。
    猜你喜欢
    • 2018-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 2011-11-08
    • 1970-01-01
    相关资源
    最近更新 更多