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 django-users@googlegroups.com 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 -~----------~----~----~----~------~----~------~--~---