История изменений
Исправление pawnhearts, (текущая версия) :
Есть целый сайт, чтобы там разобраться лол https://ccbv.co.uk/
Но вообще все эти формы это легаси. И class-based view позволяет намного больше переиспользовать код, чем function-based views до этого. Сейчас джанга актуальна в контексте drf, а там всё очень неплохо. И очень круто кастомизируется, если ориентироваться. Я даже видел как люди копируют структуру оттуда - https://github.com/Skorpyon/aiorestframework (да я и сам таким страдаю иногда https://bitbucket.org/robotnaoborot/aiowebapi/src/master/ https://github.com/pawnhearts/aiorf/tree/master/aiorf )
Но вообще беда джанги в синхронности и производительности. Я тут сделал прототип на drf и уже столкнулся с проблемой производительности. Там всё оказалось чуть сложнее и вот несколько вложенных сериализаторов и все эти prefetch_related уже не спасают. Пришлось выхлоп особо тяжелых сериализаторов кешировать в jsonfield, чтобы это быстро шевелилось. Что-то денормализовать. Кое где всю вьюшку целиком кешировать. И это прототип с одним пользователем. Ради смеха я сделал management command который складывает выхлоп сериализатора особо тяжелого listview в коллекцию монго. И набросал на aiohttp/aiomongo все фильтры которые мне нужны. И это просто летает.
Исходная версия pawnhearts, :
Есть целый сайт, чтобы там разобраться лол https://ccbv.co.uk/
Но вообще все эти формы это легаси. И class-based view позволяет намного больше переиспользовать код, чем function-based views до этого. Сейчас джанга актуальна в контексте drf, а там всё очень неплохо. И очень круто кастомизируется, если ориентироваться. Я даже видел как люди копируют структуру оттуда - https://github.com/Skorpyon/aiorestframework
Но вообще беда джанги в синхронности и производительности. Я тут сделал прототип на drf и уже столкнулся с проблемой производительности. Там всё оказалось чуть сложнее и вот несколько вложенных сериализаторов и все эти prefetch_related уже не спасают. Пришлось выхлоп особо тяжелых сериализаторов кешировать в jsonfield, чтобы это быстро шевелилось. Что-то денормализовать. Кое где всю вьюшку целиком кешировать. И это прототип с одним пользователем. Ради смеха я сделал management command который складывает выхлоп сериализатора особо тяжелого listview в коллекцию монго. И набросал на aiohttp/aiomongo все фильтры которые мне нужны. И это просто летает.