Source code for bonobo.contrib.django.utils

[docs]def create_or_update(model, *, defaults=None, save=True, **kwargs): """ Create or update a django model instance. :param model: :param defaults: :param kwargs: :return: object, created, updated """ obj, created = model._default_manager.get_or_create(defaults=defaults, **kwargs) updated = False if not created: if defaults: for k, v in defaults.items(): if getattr(obj, k) != v: setattr(obj, k, v) updated = True if updated and save: obj.save() return obj, created, updated