Как я могу использовать лямбда-функцию с картой для создания объекта?Я получаю 1 или более объектов в моем сериализаторе от Json, затем я хочу повторить этот JSON и создать объект.Вот мой код из models.py
и мой serializers.py
.
# Models.py
class ModelA(models.Model):
...
@classmethod
def insert_car(self, i, user):
car = i.get('car')
item = i.get('item')
quantity = i.get('quantity')
ModelA.objects.create(user=user, car=car, item=item, quantity=quantity, status=self.STATUS_PENDING)
return True
# serializers.py
class ModelASerializer(ModelSerializer):
class Meta:
model = Order
fields = ['car', 'item', 'quantity']
class MultipleOrderSerializer(ModelSerializer):
items = ModelASerializer(many=True)
class Meta:
model = Order
fields = ['items']
def create(self, request, *args, **kwargs):
list = self.data.get('items')
user = self.context.get('request').user
a = map(lambda i : ModelA.insert_car(i, user), list)
return self.data
Я пытался напечатать что-нибудь внутри моего insert_car
, но ничего не печатает, метод insert_car
не вызывается
# Update01
Согласно @ bro-grammer: «В python 3 map - это ленивый итератор. Он ничего не делает, если вы его потребляете. Попробуйте окружить карту (...) со списком (map (...)) "
тогда функция вызова строки карты выглядит следующим образом: create_car = list(map(lambda i : ModelA.insert_car(i, user), list))