Вы можете обойти вашу проблему, используя кеш-каркас Django, но вы будете действовать иначе. С его помощью вы можете кэшировать все, что захотите, но он не предназначен для сохранения результатов на объекте. Если вы хотите избежать вычисления GPA и при этом иметь возможность получать к нему доступ из каждого экземпляра модели, то, как вы это делаете, просто и, вероятно, лучший способ сделать это.