我知道这个问题是在不久前问到的,但是我在试图自己解决这个问题时就发现了。
事实证明,如果many=True
在实例化模型的序列化器类时通过,则它可以接受多个对象。
django rest框架文档在这里提到了这一点
就我而言,我的观点如下所示:
class ThingViewSet(viewsets.ModelViewSet):
"""This view provides list, detail, create, retrieve, update
and destroy actions for Things."""
model = Thing
serializer_class = ThingSerializer
我并不是真的想写一个样板文件只是为了直接控制序列化器和pass的实例化many=True,所以在我的序列化器类中,我重写了__init__
:
class ThingSerializer(serializers.ModelSerializer):
def __init__(self, *args, **kwargs):
many = kwargs.pop('many', True)
super(ThingSerializer, self).__init__(many=many, *args, **kwargs)
class Meta:
model = Thing
fields = ('loads', 'of', 'fields', )
以以下格式将数据发布到该视图的列表URL:
[
{'loads':'foo','of':'bar','fields':'buzz'},
{'loads':'fizz','of':'bazz','fields':'errrrm'}
]
使用这些详细信息创建了两个资源。很好