How to use lambda function with dictionary?
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
|
show 1 more comment
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
1
I think yourcreate
method signature should be likedef create(self, validated_data)
– bro-grammer
Nov 22 '18 at 1:23
What’s the difference? Can you explain to me??
– Matheus Soares
Nov 22 '18 at 1:55
It only accepts two arguments one isself
and other isvalidated_data
. In your signature you are passing several different arguments.
– bro-grammer
Nov 22 '18 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 '18 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 surroundingmap(...)
withlist(map(...))
– bro-grammer
Nov 22 '18 at 2:06
|
show 1 more comment
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
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
python django django-models django-rest-framework django-serializer
edited Nov 22 '18 at 12:20
Matheus Soares
asked Nov 22 '18 at 1:15


Matheus SoaresMatheus Soares
417
417
1
I think yourcreate
method signature should be likedef create(self, validated_data)
– bro-grammer
Nov 22 '18 at 1:23
What’s the difference? Can you explain to me??
– Matheus Soares
Nov 22 '18 at 1:55
It only accepts two arguments one isself
and other isvalidated_data
. In your signature you are passing several different arguments.
– bro-grammer
Nov 22 '18 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 '18 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 surroundingmap(...)
withlist(map(...))
– bro-grammer
Nov 22 '18 at 2:06
|
show 1 more comment
1
I think yourcreate
method signature should be likedef create(self, validated_data)
– bro-grammer
Nov 22 '18 at 1:23
What’s the difference? Can you explain to me??
– Matheus Soares
Nov 22 '18 at 1:55
It only accepts two arguments one isself
and other isvalidated_data
. In your signature you are passing several different arguments.
– bro-grammer
Nov 22 '18 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 '18 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 surroundingmap(...)
withlist(map(...))
– bro-grammer
Nov 22 '18 at 2:06
1
1
I think your
create
method signature should be like def create(self, validated_data)
– bro-grammer
Nov 22 '18 at 1:23
I think your
create
method signature should be like def create(self, validated_data)
– bro-grammer
Nov 22 '18 at 1:23
What’s the difference? Can you explain to me??
– Matheus Soares
Nov 22 '18 at 1:55
What’s the difference? Can you explain to me??
– Matheus Soares
Nov 22 '18 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 '18 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 '18 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 '18 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 '18 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 '18 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 '18 at 2:06
|
show 1 more comment
0
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',
autoActivateHeartbeat: false,
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
1
I think your
create
method signature should be likedef create(self, validated_data)
– bro-grammer
Nov 22 '18 at 1:23
What’s the difference? Can you explain to me??
– Matheus Soares
Nov 22 '18 at 1:55
It only accepts two arguments one is
self
and other isvalidated_data
. In your signature you are passing several different arguments.– bro-grammer
Nov 22 '18 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 '18 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(...)
withlist(map(...))
– bro-grammer
Nov 22 '18 at 2:06