Как использовать лямбда-функцию со словарем? - PullRequest
0 голосов
/ 22 ноября 2018

Как я могу использовать лямбда-функцию с картой для создания объекта?Я получаю 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))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...