1. Использовать разные сериалайзеры
2. Кастомизировать метод to_representation и/или добавлять read_only поля
ПС. Если представления сильно различаются(видимо так и будет), то я б просто сделал два(или больше) разных сериалайзера, и уже в них формировал нужные данные и в нужной структуре.
У вас на POSTе условия не покрывают все варианты. Например:
framework in request.POST, но форма не валидная. Другой пример: language в request.POST, но форма не валидная. В этих случаях пост не вернет ничего.
1. Вернуть что нужно из первой функции
2. Записать результат(то что возвращает) 1й функции в перемнную
3. Передать в качестве аргумента переменную из п2 (результат первой функции) во вторую
4. ?????
5. PROFIT!!!!111