Я не столь многоопытен в Django, но имеющейся информацией поделиться готов. Возможно, вам также пригодится...
Есть три человека (двое из них - семейная пара), к мнению которых в данном вопросе (Django-разработка) я прислушиваюсь в первую очередь, тщательно и неторопливо изучая соответствующие печатные материалы...
Это
Daniel & Audrey Roy Greenfeld, авторы небезызвестной
Two Scoops of Django и
Arun Ravindran, developer member of the Django Software Foundation и автор
Django Design Patterns and Best Practices.
И первые, и второй предпочитают
CBV. Но это, в большей степени, личные предпочтения. Сами Гринфилды отмечают, что знают немало своих коллег, предпочитающих работу с
FBV (цитирую:
"...Some developers prefer to err on the side of using FBVs for most views and CBVs only for views that need to be subclassed. That strategy is fine as well...."). Одним словом, это действительно вопрос личных предпочтений и характера разрабатываемого продукта.
Единственный категорический совет от них - не использовать
CBV для написания обработчиков ошибок (
"...Don’t use CBVs to write custom 403, 404, and 500 error handlers. Use FBVs instead....")
А тут можно полюбопытствовать на графическую подсказку от Гринфилдов по выбору предпочтения в зависимости от стоящих перед вами задач.