Hi,

I think your problem is to use POST['_models_changed']. Django uses specialized version of dictionary there which return _last_ value from list. You need to use special "get_list()" method to get whole list of objects.

Your code should start working if you do data['_models_changed'].get_list() in a for-loop.

Also, why you modify request.POST instead of adding class attribute?

On 24.04.2017 14:37, Emilio Jimenez Canalejo wrote:
Hi, I've been looking for some time around the internet a problem I have, maybe I'm just dull from all the searching and the answer is pretty obvious, but I can't find it.

For example, I have code like this:
|
@app.task
deffoo(idx):
print("This is iteration {}".format(idx))

defsave_model(self,request,obj,form,change):
    data = request.POST
    result =super(Model,self).save_model(request,obj,form,change)

forpk in data['_models_changed']:
        transaction.on_commit(lambda:foo(pk))
|

To my astonishment, I thought I would get:
|
"This is iteration 1"
"This is iteration 2"
"This is iteration 3"
"This is iteration 4"
|

But I got:
|
"This is iteration 4"
"This is iteration 4"
"This is iteration 4"
"This is iteration 4"
|

I'm using python 2.7, Django 1.10.5 and Celery 4.0.2.

'models_changed' is a field in the post added by a custom clean method.

Anyone knows a way to do this?

Thanks for all!
--
You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]>. To post to this group, send email to [email protected] <mailto:[email protected]>.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/91e87fb4-69e2-4b4e-bd6b-704eb7567026%40googlegroups.com <https://groups.google.com/d/msgid/django-users/91e87fb4-69e2-4b4e-bd6b-704eb7567026%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.

--
Jani Tiainen

--
You received this message because you are subscribed to the Google Groups "Django 
users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/80fd8239-7ea0-7815-081a-f381309343dc%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to