def get_changed_data_from_form(form):
    """Returns a dictionary with keys of all changed fields
    and values that are a dict with 'before' and 'after' keys
    values of 'before' and 'after' are display values
    for example:
        {
            'First name': {
                'before': 'George',
                'after': 'Jorge'
            },
            'Date of birth': {
                'before': 'February/6/1791',
                'after': '2/6/1791'}
            }
        }
    Expects fields prefixed with 'existing_' in order to make that comparison
    """
    changes = {}
    existing_data_form = form.__class__(
        form.raw_input_data, prefix='existing_', validate=True,
        skip_validation_parse_only=True)
    for field in form.iter_fields():
        after = field.get_display_value()
        existing_data_field = existing_data_form.fields[field.context_key]
        before = existing_data_field.get_display_value()
        if before != after:
            changes[field.get_display_label()] = {
                'before': before,
                'after': after}
    return changes