skip to navigation
skip to content

dj-obj-update 0.2.1

A Django app for adding object tools for models in the admin

dj-obj-update is a module that helps you do two things while updating an object:

  1. Only do a save if something changed
  2. Log what changed (the logger name is obj_update and only outputs DEBUG)

Installation

pip install dj-obj-update

Usage

Updating an object

from obj_update import obj_update

new_data = {
    'flavor': 'chocolate',
}
for obj in queryset:
    obj_update(obj, new_data)

Replacement for update_or_create

from obj_update import obj_update_or_create

choice, created = obj_update_or_create(
    Choice,
    question=question,
    defaults={'choice_text': 'Flour or corn?'},
)

https://docs.djangoproject.com/en/1.8/ref/models/querysets/#update-or-create

Logging changes

Using python-json-logger:

import logging
from pythonjsonlogger.jsonlogger import JsonFormatter

logger = logger.getLogger('obj_update')
handler = logging.FileHandler('log/my_obj_changes.log')
handler.setFormatter(JsonFormatter())
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)
 
File Type Py Version Uploaded on Size
dj-obj-update-0.2.1.tar.gz (md5) Source 2015-08-02 2KB
dj_obj_update-0.2.1-py2.py3-none-any.whl (md5) Python Wheel 2.7 2015-08-02 4KB