def have_fields_changed(obj, *fields):
    """Returns True if all the specified fields on an object have changed compared the current database version."""
    if not obj.pk:
        return False
    try:
        current_obj = obj.__class__.objects.only(*fields).get(pk=obj.pk)
        for field in fields:
            if getattr(obj, field) == getattr(current_obj, field):
                return False
        return True
    except:
        return False
