Я сам нашел ответ случайным образом. Дело оказалось в том, что я зарегистрировал этот класс в settings.py как мидлварь, и в придачу записал как декоратор перед нужной мне функцией. Вследствие этого этот класс использовался и как мидлварь для всех запросов, и как декоратор для той функции, поэтому вызывался дважды. Я убрал запись как мидлваря из settings.py и теперь всё работает