Ticket #14234: dj14234-signal.diff

File dj14234-signal.diff, 1.1 KB (added by Jeremy Dunck, 14 years ago)
  • django/forms/models.py

    diff --git a/django/forms/models.py b/django/forms/models.py
    index cf465ad..776a33c 100644
    a b class BaseModelForm(BaseForm):  
    247247    def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None,
    248248                 initial=None, error_class=ErrorList, label_suffix=':',
    249249                 empty_permitted=False, instance=None):
     250        from django.db.models.signals import post_save
    250251        opts = self._meta
    251252        if instance is None:
    252253            if opts.model is None:
    class BaseModelForm(BaseForm):  
    255256            self.instance = opts.model()
    256257            object_data = {}
    257258            self.instance._adding = True
     259            def cleanup_adding(instance, created, raw, using, **kwargs):
     260                if self.instance is instance:
     261                    instance._adding = False
     262                    post_save.disconnect(cleanup_adding, opts.model)
     263            post_save.connect(receiver=cleanup_adding, sender=opts.model)
    258264        else:
    259265            self.instance = instance
    260266            self.instance._adding = False
Back to Top