-
Notifications
You must be signed in to change notification settings - Fork 49
Open
Description
Hi.
Model.objects.update_or_create(key_field=key_value, defaults={}) is not routed automatically, when value existed. The reason is in it's realization:
def update_or_create(self, defaults=None, **kwargs):
"""
Looks up an object with the given kwargs, updating one with defaults
if it exists, otherwise creates a new one.
Returns a tuple (object, created), where created is a boolean
specifying whether an object was created.
"""
defaults = defaults or {}
lookup, params = self._extract_model_params(defaults, **kwargs)
self._for_write = True
try:
obj = self.get(**lookup)
except self.model.DoesNotExist:
obj, created = self._create_object_from_params(lookup, params)
if created:
return obj, created
for k, v in six.iteritems(defaults):
setattr(obj, k, v)
obj.save(using=self.db)
return obj, Falseobj has been got correctly, but self.db returns 'default'. As a result obj.save(using=self.db) fails.
Metadata
Metadata
Assignees
Labels
No labels