在django上的单个API调用上创建多个对象

时间:2017-11-12 08:30:15

标签: django-rest-framework

我必须在单个API调用上创建多个对象。我  序列化程序类就像这样

def create(self, validated_data):
    dt = datetime.now()
    strg = '{:%d%m%Y%H%M%S}'.format(dt, dt.microsecond // 1000)
    hat= "REQ" + strg
    creater = dot_order_models.DotOrder(reqnum=hat,**validated_data)
    creater.save()
    return creater
class Meta:
    model = dot_order_models.DotOrder
    fields = ('merchant', 'biker','batch','customer_name','contact','city','locality','order_amount')

我刚刚给了many=true但是没有用。然后我给

def __init__(self, *args, **kwargs):
    many = kwargs.pop('many', True)
    super(BikerSerializer, self).__init__(many=many, *args, **kwargs)

这也没有用。我可以使用序列化程序和视图类来解决它。 提前谢谢

1 个答案:

答案 0 :(得分:0)

def create(self, request, *args, **kwargs):
    serializer = self.get_serializer(data=request.data, many=isinstance(request.data, list))
    serializer.is_valid(raise_exception=True)
    self.perform_create(serializer)
    results = dot_order_models.DotOrder.objects.all()
    output_serializer = dot_order_serializers.DotOrderSerializer(results, many=True)
    return super(DotOrderViewSet, self).create(request)