Подсмотрите в django-braces, там есть миксины AjaxЧегототам, которые разделяют get()/post() и ajax_get()/ajax_post() методы. Чтобы одним классом обрабатывать и аякс (возвращая json), и обычный POST (возвращая TemplateResponse).
Думаю велосипед тут явно лишний по 2ум причинам как минимум:
— в официальной документации есть пример
— существует несколько пакетов Django для взаимодействия через ajax, например, DjangoRestFramework
Рецепты Django. Part 1 — AJAX формы