How to use lambda function with dictionary?











up vote
0
down vote

favorite












How can I use lambda function with map for create a object? I receive 1 or more objects in my serializer by Json, then I want iterate this json and create a object. Here is my code from models.py, and my 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


I tryed print anything inside my insert_car, but doesn't print nothing, the method insert_car doesn't called



#Update01



According to @bro-grammer, "In python 3 map is a lazy iterator. It doesnot do anything util you consume it. Try surrounding map(...) with list(map(...))"



then, the line calling map function looks like this:
create_car = list(map(lambda i : ModelA.insert_car(i, user), list))










share|improve this question




















  • 1




    I think your create method signature should be like def create(self, validated_data)
    – bro-grammer
    Nov 22 at 1:23












  • What’s the difference? Can you explain to me??
    – Matheus Soares
    Nov 22 at 1:55










  • It only accepts two arguments one is self and other is validated_data. In your signature you are passing several different arguments.
    – bro-grammer
    Nov 22 at 1:57










  • Because that the lambda map doesn’t work? If a use a for inside my insert_car its works normally. I don’t understand why lambda doesn’t work.
    – Matheus Soares
    Nov 22 at 2:04






  • 3




    Oh i get it now. In python 3 map is a lazy iterator. It doesnot do anything util you consume it. Try surrounding map(...) with list(map(...))
    – bro-grammer
    Nov 22 at 2:06















up vote
0
down vote

favorite












How can I use lambda function with map for create a object? I receive 1 or more objects in my serializer by Json, then I want iterate this json and create a object. Here is my code from models.py, and my 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


I tryed print anything inside my insert_car, but doesn't print nothing, the method insert_car doesn't called



#Update01



According to @bro-grammer, "In python 3 map is a lazy iterator. It doesnot do anything util you consume it. Try surrounding map(...) with list(map(...))"



then, the line calling map function looks like this:
create_car = list(map(lambda i : ModelA.insert_car(i, user), list))










share|improve this question




















  • 1




    I think your create method signature should be like def create(self, validated_data)
    – bro-grammer
    Nov 22 at 1:23












  • What’s the difference? Can you explain to me??
    – Matheus Soares
    Nov 22 at 1:55










  • It only accepts two arguments one is self and other is validated_data. In your signature you are passing several different arguments.
    – bro-grammer
    Nov 22 at 1:57










  • Because that the lambda map doesn’t work? If a use a for inside my insert_car its works normally. I don’t understand why lambda doesn’t work.
    – Matheus Soares
    Nov 22 at 2:04






  • 3




    Oh i get it now. In python 3 map is a lazy iterator. It doesnot do anything util you consume it. Try surrounding map(...) with list(map(...))
    – bro-grammer
    Nov 22 at 2:06













up vote
0
down vote

favorite









up vote
0
down vote

favorite











How can I use lambda function with map for create a object? I receive 1 or more objects in my serializer by Json, then I want iterate this json and create a object. Here is my code from models.py, and my 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


I tryed print anything inside my insert_car, but doesn't print nothing, the method insert_car doesn't called



#Update01



According to @bro-grammer, "In python 3 map is a lazy iterator. It doesnot do anything util you consume it. Try surrounding map(...) with list(map(...))"



then, the line calling map function looks like this:
create_car = list(map(lambda i : ModelA.insert_car(i, user), list))










share|improve this question















How can I use lambda function with map for create a object? I receive 1 or more objects in my serializer by Json, then I want iterate this json and create a object. Here is my code from models.py, and my 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


I tryed print anything inside my insert_car, but doesn't print nothing, the method insert_car doesn't called



#Update01



According to @bro-grammer, "In python 3 map is a lazy iterator. It doesnot do anything util you consume it. Try surrounding map(...) with list(map(...))"



then, the line calling map function looks like this:
create_car = list(map(lambda i : ModelA.insert_car(i, user), list))







python django django-models django-rest-framework django-serializer






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 22 at 12:20

























asked Nov 22 at 1:15









Matheus Soares

417




417








  • 1




    I think your create method signature should be like def create(self, validated_data)
    – bro-grammer
    Nov 22 at 1:23












  • What’s the difference? Can you explain to me??
    – Matheus Soares
    Nov 22 at 1:55










  • It only accepts two arguments one is self and other is validated_data. In your signature you are passing several different arguments.
    – bro-grammer
    Nov 22 at 1:57










  • Because that the lambda map doesn’t work? If a use a for inside my insert_car its works normally. I don’t understand why lambda doesn’t work.
    – Matheus Soares
    Nov 22 at 2:04






  • 3




    Oh i get it now. In python 3 map is a lazy iterator. It doesnot do anything util you consume it. Try surrounding map(...) with list(map(...))
    – bro-grammer
    Nov 22 at 2:06














  • 1




    I think your create method signature should be like def create(self, validated_data)
    – bro-grammer
    Nov 22 at 1:23












  • What’s the difference? Can you explain to me??
    – Matheus Soares
    Nov 22 at 1:55










  • It only accepts two arguments one is self and other is validated_data. In your signature you are passing several different arguments.
    – bro-grammer
    Nov 22 at 1:57










  • Because that the lambda map doesn’t work? If a use a for inside my insert_car its works normally. I don’t understand why lambda doesn’t work.
    – Matheus Soares
    Nov 22 at 2:04






  • 3




    Oh i get it now. In python 3 map is a lazy iterator. It doesnot do anything util you consume it. Try surrounding map(...) with list(map(...))
    – bro-grammer
    Nov 22 at 2:06








1




1




I think your create method signature should be like def create(self, validated_data)
– bro-grammer
Nov 22 at 1:23






I think your create method signature should be like def create(self, validated_data)
– bro-grammer
Nov 22 at 1:23














What’s the difference? Can you explain to me??
– Matheus Soares
Nov 22 at 1:55




What’s the difference? Can you explain to me??
– Matheus Soares
Nov 22 at 1:55












It only accepts two arguments one is self and other is validated_data. In your signature you are passing several different arguments.
– bro-grammer
Nov 22 at 1:57




It only accepts two arguments one is self and other is validated_data. In your signature you are passing several different arguments.
– bro-grammer
Nov 22 at 1:57












Because that the lambda map doesn’t work? If a use a for inside my insert_car its works normally. I don’t understand why lambda doesn’t work.
– Matheus Soares
Nov 22 at 2:04




Because that the lambda map doesn’t work? If a use a for inside my insert_car its works normally. I don’t understand why lambda doesn’t work.
– Matheus Soares
Nov 22 at 2:04




3




3




Oh i get it now. In python 3 map is a lazy iterator. It doesnot do anything util you consume it. Try surrounding map(...) with list(map(...))
– bro-grammer
Nov 22 at 2:06




Oh i get it now. In python 3 map is a lazy iterator. It doesnot do anything util you consume it. Try surrounding map(...) with list(map(...))
– bro-grammer
Nov 22 at 2:06

















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53422623%2fhow-to-use-lambda-function-with-dictionary%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53422623%2fhow-to-use-lambda-function-with-dictionary%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Sphinx de Gizeh

Dijon

Get global maximum slope