Сергей, у меня такой вопрос - Возможно ли, используя FormView (и DetailView) сделать поля формы заполненными в зависимости от приходящего объекта(автозаполнение)? Если я получаю данные из get_context_data, то применяя self.form_class.declared_fields['product_name'].initial = context['product'].name данные попадают в форму только при повторном запросе.
Разобрался... Для тех кому интересно как сделать автозаполнение - нужно создать метод который будет делать запрос и фильтровать конкретно ваш продукт по id, и через initial можно добавить в форму полученные данные - def get_queryset(self): product = Product.objects.filter(pk=self.kwargs['id']) self.initial['amount'] = product[0].price self.initial['product_name'] = product[0].name return product
7:51 непонятно, как cat_selected становится None по умолчанию в классе WomenHome? мы же там не вызываем метод get_mixin_context, а просто в инициализаторе заполняем extra_context. то есть context там не используется
Здравствуйте , подскажите пожалуйста как лучше подходить к изучению вашего материала ? Просмотр вашего урока и его реализация на своем ПК даёт кратковременный эффект памяти. Далее идут следующие уроки и то что было скажем пять уроков назад уже смутно поддается описанию в голове , а про реализацию это я вообще молчу. Может есть какой то наиболее успешный подход для изучения такого материала ?
Только практика, без нее ничего не запомнишь и не поймешь. Придумывай проект, сталкивайся с проблемами и решай их смотря видео и читая книги, гугл в конце концов, но главное разбирай, что от чего и почему.
практика, практика и еще раз практика... пока учишь, забыть это нормально) перегруз информацией затирает то, что не закрепилось. у меня даже раз было, что просмотрел видос, лайк поставил, через месяц споткнулся на проблеме, полез в видос смотреть, что там и как, и понял, что ваще нифига не помню, хотя смотрю, что лайк стоит, значит уже смотрел))) пришлось второй раз смотреть. лучший способ как до этого сказали свой проект. доделай этот по видосам, потом придумай свой, похожий и сделай его, например - каталог домашней библиотеки, книги, авторы, о чем книги, или фильмотеку
@@АлександрНестеров-н4д честно говоря не помню уже тот плейлист, но лучше по этому, поскольку джанго с тех пор уже явно обновился и возможно проблемы повылазят, когда делаешь по старому уроку, а фреймворк уже новый
А extra_context - это обязательный атрибут? Насколько я поняла, он создаётся и туда добавляются меню и cat_selected в любом случае в инициализаторе DataMixin. Это не лишнее действие(и память) , если мы вызываем метод get_context_data?
Что то запутался, наследование то понятно и всю логику понимаю, но что то в этих CBV не понимаю чем context отличается от extra_context то есть от вот этой строчки, context = super().get_context_data(**kwargs). То мы просто уже в классе указываем extra_context то переопределяем его методом super, каша что то в голове сложилась, и помню что extra_context перекрывает context и является приоритетным, подскажите плиз
Спасибо, Сергей! Здоровья тебе🤝
Спасибо! Полезная фича для реализации принципа DRY
Я ещё только на начальных уроках, но лайк заранее ставлю.
Спасибо. Все понял, очень хорошо подано.
Миксины, это Ренесанс!
В class AddPage(DataMixin, CreateView). при зачистке, забыли про success_url = reverse_lazy('home')
Спасибо за урок! 🚲
Ага, забыли. Если добавлять запись со статусом "не опубликовано", то будет падать с ошибкой.
Здорово! Спасибо огромное! 👏
Сергей, у меня такой вопрос - Возможно ли, используя FormView (и DetailView) сделать поля формы заполненными в зависимости от приходящего объекта(автозаполнение)? Если я получаю данные из get_context_data, то применяя self.form_class.declared_fields['product_name'].initial = context['product'].name данные попадают в форму только при повторном запросе.
Разобрался... Для тех кому интересно как сделать автозаполнение - нужно создать метод который будет делать запрос и фильтровать конкретно ваш продукт по id, и через initial можно добавить в форму полученные данные -
def get_queryset(self):
product = Product.objects.filter(pk=self.kwargs['id'])
self.initial['amount'] = product[0].price
self.initial['product_name'] = product[0].name
return product
7:51 непонятно, как cat_selected становится None по умолчанию в классе WomenHome? мы же там не вызываем метод get_mixin_context, а просто в инициализаторе заполняем extra_context. то есть context там не используется
У меня с ООП не очень пока, и я не могу понять почему используются поля класса а не экземпляра?
👍
Здравствуйте , подскажите пожалуйста как лучше подходить к изучению вашего материала ? Просмотр вашего урока и его реализация на своем ПК даёт кратковременный эффект памяти. Далее идут следующие уроки и то что было скажем пять уроков назад уже смутно поддается описанию в голове , а про реализацию это я вообще молчу. Может есть какой то наиболее успешный подход для изучения такого материала ?
Только практика, без нее ничего не запомнишь и не поймешь. Придумывай проект, сталкивайся с проблемами и решай их смотря видео и читая книги, гугл в конце концов, но главное разбирай, что от чего и почему.
@@cayot007 согласен, делать свой проект, он может пересекаться с проектом в видео, но недолжен быть копией. Иначе не будет особого эффекта
практика, практика и еще раз практика... пока учишь, забыть это нормально) перегруз информацией затирает то, что не закрепилось. у меня даже раз было, что просмотрел видос, лайк поставил, через месяц споткнулся на проблеме, полез в видос смотреть, что там и как, и понял, что ваще нифига не помню, хотя смотрю, что лайк стоит, значит уже смотрел))) пришлось второй раз смотреть. лучший способ как до этого сказали свой проект. доделай этот по видосам, потом придумай свой, похожий и сделай его, например - каталог домашней библиотеки, книги, авторы, о чем книги, или фильмотеку
@@x-user-agent Спасибо так и сделаю , только я вот Джанго 3 учу по тому плейлисту , есть ли смысл заново весь плейлист по 4 версии смотреть ?
@@АлександрНестеров-н4д честно говоря не помню уже тот плейлист, но лучше по этому, поскольку джанго с тех пор уже явно обновился и возможно проблемы повылазят, когда делаешь по старому уроку, а фреймворк уже новый
А extra_context - это обязательный атрибут? Насколько я поняла, он создаётся и туда добавляются меню и cat_selected в любом случае в инициализаторе DataMixin. Это не лишнее действие(и память) , если мы вызываем метод get_context_data?
нет, не обязательный
Что то запутался, наследование то понятно и всю логику понимаю, но что то в этих CBV не понимаю чем context отличается от extra_context то есть от вот этой строчки, context = super().get_context_data(**kwargs). То мы просто уже в классе указываем extra_context то переопределяем его методом super, каша что то в голове сложилась, и помню что extra_context перекрывает context и является приоритетным, подскажите плиз
Там чёт вроде с изменяемыми объектами связано, мол в екстра ты не сможешь передать словарь или список
Как я понял extra_context-можно использовать д\заранее подгото-ых данных. get-запросы не принимает!