def fix_data(model_manager, fields_to_update_with_defaults_dict, commit=False): bad_ids = [] all_ids = model_manager.values_list('id', flat=True) print "There are {} total IDs.".format(len(all_ids)) for b_id in all_ids: try: b = model_manager.get(id=b_id) except: bad_ids.append(b_id) print "There were {0} bad IDs: ".format(len(bad_ids)) print ", ".join(str(id) for id in bad_ids) if commit: # fix 'em model_manager \ .filter(id__in=bad_ids) \ .update(**fields_to_update_with_defaults_dict) else: print "Didn't fix, just reported."