Из документации класса в исходном коде Django:
Подробнее о том, как работает кэширование: * Кешируются только GET или HEAD-запросы с кодом состояния 200.Ссылка: https://github.com/django/django/blob/master/django/middleware/cache.py
Причина этого ограничения, вероятно, заключается в том, что GET-запросы должны быть идемпотентными, а POST-запросы - нет, поэтому, как правило, нет смысла кэшировать POST-запросы.Вот вопрос, который хорошо объясняет эту концепцию: Что такое идемпотентность в методах HTTP?
Django с открытым исходным кодом, так что вы всегда можете расширить механизм кэширования, чтобы получить такое поведение, но это будетвероятно, запутают ваших пользователей API, поскольку они будут ожидать, что POST всегда будет новым запросом.