Unfortunately this solutions dosen't work.
Even if i do something (stupid) like that:
def post_save_gallery(instance):
dispatcher.disconnect(post_save_gallery, signal=signals.post_save,
sender=Gallery)
gallery = Gallery.objects.get(slug=instance.slug)
photos = Photo.objects.all()
for photo in photos:
gallery.photos.add(photo)
gallery.save()
dispatcher.connect(post_save_gallery, signal=signals.post_save,
sender=Gallery)
after post_save_gallery() there is still no relations betwen Gallery
and Photo (gallery.photos.all() is empty).
So i'm waiting for fixing...
On Dec 26, 4:41 am, Malcolm Tredinnick <[EMAIL PROTECTED]>
wrote:
> On Tue, 2007-12-25 at 14:34 -0800, grassoalvaro wrote:
> > I was searching for solutions but i didnt find anything.
> > So, here is my problem.
>
> > I have models, for example:
>
> > class Photo(models.Model, helpers.AdminOptions):
> > name = models.CharField(default="", null=True, blank=True,
> > max_length=255)
>
> > class Gallery(models.Model, helpers.AdminOptions):
> > name = models.CharField(max_length=255, null=True, blank=True)
> > photos = models.ManyToManyField(Photo, blank=True)
>
> > and i'm traing to override save() method for Gallery:
>
> > def save(self):
> > # some code
> > super(Gallery, self).save() # we need id of new gallery
> > # some code
> > photo = Photo()
> > photo.save()
> > self.photos.add(photo) # why this doesn't work?
> > self.save() # this is not working
> > return self
>
> > photo = Photo() and photo.save() work fine, but i want to add new
> > photo to Gallery (self.photos) and here is the problem. super(Gallery,
> > self).save() and self.save() do not saving relations betwen Photo and
> > Gallery. I waste big part of my time investigating why, but i still
> > dont know that...
>
> There are two problems here. Firstly the self.save() line can't possibly
> work because it will lead to infinite recursion... it's calling itself
> unconditionally every time.
>
> Slightly trickier is the self.photos.add() line. The problem here is
> that self.photos.add() calls self.save() as part of its imlpementation,
> which again will lead to recursion problems. You can't add to a
> many-to-many inside a save() method very easily like this. It is going
> to take some redesigning of the save() path for that to be fixed
> (possibly adding another flag parameter to save() or something). It will
> probably be fixed on day, but at the moment, you should probably use a
> signal (using the "post-save" signal) to do this external processing.
>
> Regards,
> Malcolm
>
> --
> On the other hand, you have different
> fingers.http://www.pointy-stick.com/blog/
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---