#56. Mixins как способ улучшения программного кода | Уроки по Django 4

Поделиться
HTML-код
  • Опубликовано: 18 ноя 2024

Комментарии • 25

  • @evgenyzakiev693
    @evgenyzakiev693 Год назад +4

    Спасибо, Сергей! Здоровья тебе🤝

  • @ГубкаБоб-р8ъ
    @ГубкаБоб-р8ъ Год назад +4

    Спасибо! Полезная фича для реализации принципа DRY

  • @mm_dima
    @mm_dima Год назад +1

    Я ещё только на начальных уроках, но лайк заранее ставлю.

  • @andredru4278
    @andredru4278 Год назад +1

    Спасибо. Все понял, очень хорошо подано.

  • @HeyArtem
    @HeyArtem 6 месяцев назад +2

    Миксины, это Ренесанс!
    В class AddPage(DataMixin, CreateView). при зачистке, забыли про success_url = reverse_lazy('home')
    Спасибо за урок! 🚲

    • @baks567
      @baks567 27 дней назад

      Ага, забыли. Если добавлять запись со статусом "не опубликовано", то будет падать с ошибкой.

  • @TSM_149
    @TSM_149 Год назад +2

    Здорово! Спасибо огромное! 👏

  • @ValentinAntinicotine
    @ValentinAntinicotine 2 месяца назад +2

    Сергей, у меня такой вопрос - Возможно ли, используя FormView (и DetailView) сделать поля формы заполненными в зависимости от приходящего объекта(автозаполнение)? Если я получаю данные из get_context_data, то применяя self.form_class.declared_fields['product_name'].initial = context['product'].name данные попадают в форму только при повторном запросе.

    • @ValentinAntinicotine
      @ValentinAntinicotine 2 месяца назад

      Разобрался... Для тех кому интересно как сделать автозаполнение - нужно создать метод который будет делать запрос и фильтровать конкретно ваш продукт по 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

  • @ОлчаМонгуш-е8я
    @ОлчаМонгуш-е8я 2 месяца назад +1

    7:51 непонятно, как cat_selected становится None по умолчанию в классе WomenHome? мы же там не вызываем метод get_mixin_context, а просто в инициализаторе заполняем extra_context. то есть context там не используется

  • @firstandlast4435
    @firstandlast4435 11 месяцев назад +1

    У меня с ООП не очень пока, и я не могу понять почему используются поля класса а не экземпляра?

  • @ibrahimoglu
    @ibrahimoglu Год назад +2

    👍

  • @АлександрНестеров-н4д

    Здравствуйте , подскажите пожалуйста как лучше подходить к изучению вашего материала ? Просмотр вашего урока и его реализация на своем ПК даёт кратковременный эффект памяти. Далее идут следующие уроки и то что было скажем пять уроков назад уже смутно поддается описанию в голове , а про реализацию это я вообще молчу. Может есть какой то наиболее успешный подход для изучения такого материала ?

    • @cayot007
      @cayot007 Год назад +4

      Только практика, без нее ничего не запомнишь и не поймешь. Придумывай проект, сталкивайся с проблемами и решай их смотря видео и читая книги, гугл в конце концов, но главное разбирай, что от чего и почему.

    • @ГубкаБоб-р8ъ
      @ГубкаБоб-р8ъ Год назад +2

      @@cayot007 согласен, делать свой проект, он может пересекаться с проектом в видео, но недолжен быть копией. Иначе не будет особого эффекта

    • @x-user-agent
      @x-user-agent Год назад +1

      практика, практика и еще раз практика... пока учишь, забыть это нормально) перегруз информацией затирает то, что не закрепилось. у меня даже раз было, что просмотрел видос, лайк поставил, через месяц споткнулся на проблеме, полез в видос смотреть, что там и как, и понял, что ваще нифига не помню, хотя смотрю, что лайк стоит, значит уже смотрел))) пришлось второй раз смотреть. лучший способ как до этого сказали свой проект. доделай этот по видосам, потом придумай свой, похожий и сделай его, например - каталог домашней библиотеки, книги, авторы, о чем книги, или фильмотеку

    • @АлександрНестеров-н4д
      @АлександрНестеров-н4д Год назад

      @@x-user-agent Спасибо так и сделаю , только я вот Джанго 3 учу по тому плейлисту , есть ли смысл заново весь плейлист по 4 версии смотреть ?

    • @x-user-agent
      @x-user-agent Год назад

      @@АлександрНестеров-н4д честно говоря не помню уже тот плейлист, но лучше по этому, поскольку джанго с тех пор уже явно обновился и возможно проблемы повылазят, когда делаешь по старому уроку, а фреймворк уже новый

  • @АнастасияБегун-л8я

    А extra_context - это обязательный атрибут? Насколько я поняла, он создаётся и туда добавляются меню и cat_selected в любом случае в инициализаторе DataMixin. Это не лишнее действие(и память) , если мы вызываем метод get_context_data?

    • @selfedu_rus
      @selfedu_rus  Год назад

      нет, не обязательный

  • @ChelovekPavuk555
    @ChelovekPavuk555 9 месяцев назад +1

    Что то запутался, наследование то понятно и всю логику понимаю, но что то в этих CBV не понимаю чем context отличается от extra_context то есть от вот этой строчки, context = super().get_context_data(**kwargs). То мы просто уже в классе указываем extra_context то переопределяем его методом super, каша что то в голове сложилась, и помню что extra_context перекрывает context и является приоритетным, подскажите плиз

    • @ddd-ld8fp
      @ddd-ld8fp 8 месяцев назад

      Там чёт вроде с изменяемыми объектами связано, мол в екстра ты не сможешь передать словарь или список

    • @HeyArtem
      @HeyArtem 6 месяцев назад

      Как я понял extra_context-можно использовать д\заранее подгото-ых данных. get-запросы не принимает!