Вопрос с такой темой уже был, но остался без ответа по сути. Вопрос - есть ли у кого-нибудь проверенный сайт, или контакты опытного Django программиста, кто может объяснять темы, отвечать на вопросы? Изучаю Django, написал сайт-блог, все представления задавал в виде функций, все было ясно, красиво, понятно, процесс шёл вперед семимильными шагами. Как дошел до CBV-представлений (вместо FBV) и всяких миксинов, так уперся в стену, они интуитивно непонятны, усложняют код, абсолютно некрасивы и ужасны... И материалов в интернете нормальных мало, очень мало, везде устаревший код, или автор совершенно не умеет объяснять как Дронов в своей книжке про Django. В дальнейшем нужно будет помочь с Ajax, и правильной организацией кэширования.
Может быть на этом сайте есть люди, кто может помочь новичку? Конкретно сейчас нужно четко, понятно, на пальцах объяснить зачем нужны интуитивно непонятные CBV, вместо красивых и интуитивно понятных FBV, какого они типа бывают, как их правильно использовать для работы с формами, включая изображения. Разумеется, я готов оплатить услуги (на карту ВТБ, Сбера или Альфа банка на выбор). Или может у кого то есть контакты проверенного человека, кто умеет просто и грамотно объяснять?
CBV понятны и интуитивны, на мой взгляд. Достаточно немного с ними поработать. В хорошей IDE (PyCharm, например) можно прыгать в код базовых классов, там все просто, элегантно и красиво.
На мой взгляд, код с CBV получается короче, понятнее и красивее, чем с FBV. Особенно, когда есть общий код, разделяемый между несколькими View. Тут CBV просто вне конкуренции — собственно это и было основным мотивом их появления, насколько я помню.
У меня в паре проектов переиспользование кода между различными CBV радикально сократило и упростило код.
И лучше читать руководства на английском, блоги основных разработчиков Django. В русскоязычном сегменте творится какой-то бардак. Периодически здесь люди задают вопросы и приводят в качестве примера кода на Django какие-то безумные конструкции. Спрашиваешь, как они к такому пришли, отвечают: «Да так написано в руководстве на сайте бла-бла.ру». По-моему, все эти «дроновы» скорее вредят, чем помогают своими сырыми руководствами.
Евгений, слишком много вопросов будет. Не хочу засорять форум. И отвлекать людей, честно признаюсь, что интуитивно не понимаю эти классы с безумным количеством миксинов. Не понимаю саму основу, хотя FBV вообще шли на ура, вообще легко, влёт всё схватывал, за неделю написал полноценный туристический блог со вставками модуля PYGAL World(), с интерактивной картой мира (пользователь выбирает страну, которую он посетил и сайт реагирует на выбор тем, что раскрашивает выбранную страну на карте мира в красивый алый цвет), разграничение доступа, комментарии, картинки, удаление, корректировка своих постов, пагинация, всё шло хорошо, но эти ужасные классы это просто стена непреодолимая.
Fedor_PV, Ничего ужасного в них нет. И миксинов обычно используется немного, где-то вообще без них можно обойтись. В моем коде самый частый миксин LoginRequiredMixin. Очень редко бывает когда нужно более одного миксина. Ничего сложного нет.
И есть еще один нюанс: когда вы что-то для себя сразу определяете как «непонятное и сложное» ваш ум сразу настраивается на неприятие этого. На самом деле, в IT, по крайней мере в веб-разработке, вообще ничего сложного нет. В крайнем случае, на любой ответ можно найти ответ в Google/StackOverflow.
Просто не нужно себя заранее настраивать на трудности. Определитесь что именно вам непонятно, и потихоньку начинайте разбираться понемногу. Начинайте с самого простого.
Мне сложно по вашему сумбурному описанию понять, в чем действительно сложность. Mixin - это просто класс, который переопределяет один из методов базового класса для удобства. Вроде бы все тривиально. Если бы у вас был конкретный вопрос, было бы понятнее разобраться с затруднениями.
Что касается количества вопросов, то здесь ограничения на количество нет. Единственное ограничение - вопрос должен быть по возможности конкретным.
Делая сложные проекты без классов не обойтись - вам надо просто попробовать и начать с чего-то простого. А дальше придёт понимание чем этот подход лучше функционального. По Django в частности к сожалению русскоязычной информации не много, как отметили выше. Сам по себе в баковой конструкции Django ущербен как по дизайну так и структуре проекта. Но когда начинаешь копать глубже и думаешь как сделать то, как сделат это, то понимаешь что и структура проекта должна быть другой и куча библиотек левых нужно подключить и классы переписать и микстны сделать и получается такой нехилый конструктор.
My general advice is to start with function views since they’re easier to read and understand, and only use CBVs where you need them. Where do you need them? Any place where you need a fair chunk of code to be reused among multiple views.
И от себя рекомендую книжку Two Scoops Of Django, но она для продвинутого уровня. Приведенная цитата именно из этой книжки.
Евгений, ну я задал вопрос, и ожидаемо меня послали читать не понятно что и не понятно где. А вы не занимаетесь менторством за доп плату? На выходных часик-два максимум было бы, думаю, достаточно.
Fedor_PV, Никогда не пробовал. Дело в том, что я сейчас работаю в Лаосе, и у меня очень много работы, за выходные едва успеваю отдохнуть. Тем более, никогда не пробовал никого учить, не знаю, получится ли у меня. И как вы себе это представляете: в виде разговора по Skype?
Евгений, ну да, по Скайп, другого выхода нет, наверное. Но если много работы, да еще и в другой стране, то тогда, конечно, ясно... Я не хочу ни для кого быть обузой.