Yea...it would be so elegant too! Here is a "bug" filing:
http://code.djangoproject.com/ticket/5390. It's been open for two
years....

I understand that your really getting what you asked for, just the
instance of the model you just saved but to me (and it seems you and a
lot of other people), intuition leads people to write code that drives
them nuts because its not really "post_transaction."

On Jul 14, 4:08 am, Eugene Mirotin <emiro...@gmail.com> wrote:
> If I understand right, the problem is that you want the signal after
> all related fields are already saved. If so, this is exactly the
> problem I have too.
> You see, when you have such a relation (and, for example, edit the
> parent object with inlined related objects from the admin page, Django
> _has to_ save the parent object first, and only then it saves the
> related objects (you can verify it by adding print statements to your
> save methods or handlers and running the dev server from terminal).
> The reason is that when you initially create the object, related
> objects have to link to the existing object, so the parent object is
> saved before them.
>
> On Jul 13, 9:27 pm, Ryan K <ryankas...@gmail.com> wrote:
>
>
>
> > Recently I've been trying to get answers about the post_save signal
> > behavior and perhaps have been asking too much of readers without
> > narrowing down the problem enough myself. So here is my effort to ask
> > a rather straightforward question:
>
> > The code that connects to the post_save signal, according to the
> > signal docs, is passed three objects and I am only concerned about
> > one: the instance that was saved. Now this instance has a
> > ManyToManyField and what I am finding out according to be debugging is
> > that the instance's ManyToMany field is NOT being updated after save
> > is called.
>
> > So, for example, when the signal calls the handler (this is being done
> > via the admin interface but it shouldn't matter) and I check
> > instance.manytomanyfield, it does not show the most recent changes.
> > What is the best way to "force" the update of the table so I can get
> > accurate data from the ManyToMany field? Even if I explicitly do
> > something like this:
>
> >     def __init__(self, sender, instance):
> >         self.sender = sender
> >         self.instance = sender.objects.select_related().get
> > (id=instance.id)
>
> > What seems like cached data is being when I test:
>
> > self.instance.manytomanyfield.all()
>
> > Can anyone help with this behavior?
>
> > Cheers,
> > Ryan
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to