Custom providersΒΆ

Custom provider is a mechanism that permits an application to add custom data to Access logs. A single provider can be specified for each app.

The next example define a provider that returns polls associated to current user:

def poll_provider(request):
    user = User.objects.get(pk=request.user.id)
    polls = Poll.objects.filter(user=user)
    polls_names = [p.name for p in polls]

    res = {
        'names': poll_names,
        'num_polls': len(poll_names),
    }

    return res

If this provider is defined inside polls.utils then must be set in settings.AUDIT_CUSTOM_PROVIDER:

AUDIT_CUSTOM_PROVIDER = {
    'polls': 'polls.utils.poll_provider',
}

This provider will result in an additional field inside Access named ‘polls’:

{
    ...
    custom = {
        polls = {
            names = [ "poll_1", "poll_2" ],
            num_polls = 2
        }
    }
}