Django

Code

Show
Ignore:
Timestamp:
09/02/08 19:09:33 (3 months ago)
Author:
mtredinnick
Message:

Fixed #8669 -- Use a consistent version of create() across the board for
model/field instance creation. Based on a patch from Richard Davies.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/db/models/fields/related.py

    r8823 r8884  
    307307 
    308308            def create(self, **kwargs): 
    309                 new_obj = self.model(**kwargs) 
    310                 self.add(new_obj) 
    311                 return new_obj 
     309                kwargs.update({rel_field.name: instance}) 
     310                return super(RelatedManager, self).create(**kwargs) 
    312311            create.alters_data = True 
    313312 
     
    411410            if through is not None: 
    412411                raise AttributeError, "Cannot use create() on a ManyToManyField which specifies an intermediary model. Use %s's Manager instead." % through 
    413             new_obj = self.model(**kwargs) 
    414             new_obj.save() 
     412            new_obj = super(ManyRelatedManager, self).create(**kwargs) 
    415413            self.add(new_obj) 
    416414            return new_obj