我正在开发一个API(使用DjangoRestFramework),我希望用户能够加载他们的项目列表,但我只想从数据库中加载一些列(让我们说ID,标题,类别,让我们说他们访问的URL是api / items)。
我还希望他们能够向此URL发送POST请求,不仅包含页面加载的列,还包含额外的列(例如:包含标题,类别,日期,评级<的表单/ em>的)。如果他们想要查看完整的项目,包括这些额外的细节,他们可以查看单个项目页面(api / items / 246)。
根据我的理解,您选择加载哪些字段的方式是通过模型的model.py文件中的序列化程序类。所以我创建了一个listSerializer和一个detailSerializer,其中包含我想要为元类中列出的每个字段加载的字段。这些可以很好地获取我想要的信息。
我的问题是当用户尝试发送他们的POST请求时添加一个新项目:保存的唯一字段是listSerializer的元类中列出的字段。如何保存整个对象?
在此先感谢,非常感谢任何帮助。
答案 0 :(得分:2)
您可以将字段的write_only
属性设置为True,这样就可以解决您的问题。只写字段不会显示在响应中,但会接受您发布的数据。
class ListSerializer (serializers.HyperlinkedModelSerializer):
title = serializers.CharField(write_only=True)