DjangoRestFramework - 加载特定列,并保存整个对象

时间:2014-03-18 11:49:28

标签: python django django-rest-framework

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

我还希望他们能够向此URL发送POST请求,不仅包含页面加载的列,还包含额外的列(例如:包含标题,类别,日期,评级<的表单/ em>的)。如果他们想要查看完整的项目,包括这些额外的细节,他们可以查看单个项目页面(api / items / 246)。

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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