Спор глухого с немым
Когда вам ставили задачу, то должны были четко указать способ взаимодействия фронта и бэка - ajax или стандартный post - это по способу взаимодействия. Тоже самое и с валидацией - такие вопросы должны задаваться в начале работы
А вообще валидация на сервере таких простых вещей как валидность почтового адреса или заполненность всех требуемых полей и подобных кейсов - прошлый век.
По поводу не нравится верстка - тут бэкендер не прав - можно вообще не использовать выдаваемую джанго верстку форм, а просто нормально отрабатывать то что пришло - соблюсти правила нейминга полей
Не так понимаешь, джанга сама по себе ведет только журнал изменений, но вытаскивать данные по нему не рекомендую. Проще правильно спроектируй саму модель
def filter_symbol(request):
letter_filter = Q()
for letter in 'АБВГ':
letter_filter |= Q(name__startswith=letter)
f = StartFilter(request.GET, queryset=Staff.objects.filter(letter_filter)
1. Покажи где в любой стандартой версии джанги есть ChoiceFiled
2. Есть значение choices для многих стандартных полей - но там немного о другом
3. Для хранения любой туевой хучи значений в Postgres к примеру можешь использовать JSONField