00:27:48 EgorEgorov: ))) 00:28:00 Denis S: Егор красава) 00:28:40 EgorEgorov: Кодить весело пока есть ответы на стэковерфлоу)) 00:29:27 Дмитрий С: + 00:29:29 Denis S: - но хочется) 00:29:41 EgorEgorov: 50/50, не все получилось 00:34:11 Denis S: классы от которых наследуемся 00:34:17 EgorEgorov: Не работал 00:34:19 Stacy Vedeneeva: - 00:34:20 Дмитрий С: не работал, в общих чертах 00:34:20 Елена Курносова: - 00:34:20 Denis Smirnov: только слышал о миксинах 00:34:22 vardeath: не, мы такого не знаем 00:34:38 Богдан Мотин: только слышал 00:34:39 Denis S: )))) 00:40:03 Denis S: PUT 00:40:14 Dmitry Volkov: put 00:40:50 Дмитрий С: context_data, не понял для чего 00:40:56 Denis S: Адиль, а на 6м слайде... где CBV AddComment можем ли мы там определить метод __init__ где вызовем super().__init__ и сразу определим форму в ините? или так не получится?) 00:47:45 Denis S: видно 00:47:45 Kirill.Porshnev: норм 00:47:47 Любовь: видно 00:47:48 Stacy Vedeneeva: нормально 00:48:45 Dmitry Volkov: это похоже на веивление чем на цикл 00:52:15 Елена Курносова: @login_required 00:52:16 Stacy Vedeneeva: login_required 00:52:21 Андрей Большаков: «login_reuiired 00:53:04 Андрей Большаков: @login_required 00:54:06 Denis S: нет( 00:54:10 Dmitry Volkov: - 00:54:11 Stacy Vedeneeva: - 00:54:12 Дмитрий С: Кроме редактирования БД нет 00:54:21 Дмитрий С: из админки 00:54:45 Дмитрий С: + 00:54:51 Андрей Большаков: + 00:54:54 Stacy Vedeneeva: на практике думаю все встанет на свои места 00:54:55 Денис Карпов: + 00:54:55 Egor Egorov: Все понятно 00:54:59 Любовь: + 00:55:02 Denis S: а от нескольких базовых класов можно наследоваться? Details и Ащкь yfghbvth 00:55:11 Denis S: и Form Например 00:55:45 Дмитрий С: - 00:55:49 Stacy Vedeneeva: не знаю :с 00:55:49 Андрей Большаков: - 00:55:50 Egor Egorov: Не слышал 00:55:52 Denis S: ромбовидное наследование 00:59:37 Denis S: hello from A 00:59:45 Любовь: А 00:59:49 Денис Карпов: A 00:59:49 Dmitry Volkov: hello A 00:59:50 Dmitry Mal: А 00:59:59 Denis S: потому что левее 00:59:59 Dmitry Mal: первая 01:00:01 Egor Egorov: Первый по порядку? 01:00:04 Денис Карпов: первый нашел 01:00:04 Dmitry Volkov: B - второстепенное 01:00:04 Stacy Vedeneeva: А потому что первый 01:01:08 Denis S: они A, B и так же наследуются от object 01:02:23 Kirill.Porshnev: да 01:02:23 Stacy Vedeneeva: да 01:02:24 Denis S: понятно) 01:02:24 Андрей Большаков: + 01:02:24 Елена Курносова: lf 01:02:25 Egor Egorov: да 01:02:26 Денис Карпов: + 01:08:38 Stacy Vedeneeva: да 01:08:39 Egor Egorov: + 01:08:39 Denis S: ++ 01:08:40 Дмитрий С: Пока да) 01:08:47 Андрей Большаков: + 01:09:19 Denis S: ListView 01:09:23 Дмитрий С: лист 01:09:29 Egor Egorov: лист 01:12:48 Dmitry Volkov: а paginator не надо возвращать в исходной функции? 01:13:25 Stacy Vedeneeva: а какой хоткей на комментирование выделенной части кода? 01:13:27 Дмитрий С: шаблон по умолчанию нужен, когда не определяем его в каждом из методов? 01:13:49 Denis S: ctrl + / вроде 01:15:03 Egor Egorov: Шаблон при этом не изменяем? 01:17:10 Stacy Vedeneeva: Не очень поняла с template_name -если явно не указываем, то оно создается где-то? 01:17:58 Stacy Vedeneeva: Ага, поняла, спасибо! 01:18:47 Denis S: ZEN : явное лучше неявного) 01:19:32 Egor Egorov: У нас был шаблон для функции, мы переделали в байсдвью, и шабло не изменили 01:21:42 Denis S: а как посмотреть что вообще в контексте пришло? искать в доках? 01:22:53 Дмитрий С: ее можно задать явно? 01:23:12 Egor Egorov: Максимально понятно стало) спасибо) 01:24:47 Stacy Vedeneeva: да 01:24:50 Денис Карпов: + 01:24:51 Denis Smirnov: даааа 01:24:59 Egor Egorov: +++ 01:25:06 Denis S: окей, конечно 01:25:40 Denis S: как неделя каникул у вас прошла?) 01:25:52 Denis S: что полезного сделали?)) 01:25:56 Андрей Большаков: Приложение с пагинацией bootstrap-pagination стандартно ставим через pip и прописываем в settings? 01:26:05 Stacy Vedeneeva: теперь можно пойти и переписать вьюшку проекта на classbasedviews 01:26:06 Egor Egorov: Столько работы накопилось за время учебы, что я ночами сидел разгребал 01:26:47 Denis S: Андрей, да, ставим через pip 01:27:06 Egor Egorov: У меня половина на функциях, половина на бейсдвью. Точно буду переделывать проект к одному виду 01:27:21 Denis S: лучше посмотреть страницу на гитхабе, там скорее всего будет пример использования 01:28:26 Denis S: только не уверен, что тестя пройдут, которые ожидают в контексте paginator 01:28:37 Андрей Большаков: https://pypi.org/project/django-bootstrap-pagination/ 01:30:15 Дмитрий С: Единственно вопрос, у нас при пагинации object_list будет бутстрап обрабатывать? 01:30:38 Dmitry Volkov: это бэстпрктис? или кто то пишет на функциях, а кто то на CBV ? 01:38:18 Дмитрий С: - 01:38:19 Denis S: свойство) 01:38:23 Дмитрий С: лол 01:38:23 Stacy Vedeneeva: не знаю 01:38:34 Denis S: ну это вычисляемый атрибут 01:39:37 Denis S: ещё можно делать @property.setter и @property.deleter :) 01:42:09 Дмитрий С: метод с тем же именем, что и аттрибут? 01:42:12 Stacy Vedeneeva: да 01:42:52 Андрей Большаков: Надо будет еще все ручками прокодить, тогда уляжется полностью 01:43:06 Дмитрий С: Уже все намного понятнее) 01:45:21 Denis Smirnov: detailview 01:45:23 Kirill.Porshnev: Detail 01:46:14 Egor Egorov: + 01:46:19 Stacy Vedeneeva: +- 01:46:24 Kirill.Porshnev: - 01:46:32 Denis S: человекопонятный урл) 01:46:33 Denis Smirnov: Адиль, лучше уточните про Слаг 01:49:42 Denis S: Адиль, а у себя ты используешь метод какой-нибудь slugify? для представления заголовка в slug? 01:51:20 Дмитрий С: а слаг он будет принимать через именованные аргументы? 01:53:32 Denis S: А как ты добавляешь сразу констурукцию get_context_data с вызовом super ?) 01:54:26 Egor Egorov: Насчет slug не понятно, мы же ничего не передаем, как класс детей понимает, что передан slug или любой другой параметр? 01:55:36 Денис Карпов: + 01:55:37 Roman Khrustalev: да 01:55:54 Дмитрий С: как новость выбирает по слагу 01:57:34 Egor Egorov: Вопрос снят про slug 01:57:49 Egor Egorov: *детейл 01:58:05 Egor Egorov: да 01:59:17 Denis S: FormVIew подмешать 01:59:39 Дмитрий С: в контекст добавить? 02:00:17 Дмитрий С: экстрой красиво 02:05:56 Egor Egorov: нет 02:05:57 Stacy Vedeneeva: - 02:06:04 Дмитрий С: не слышали 02:06:05 Egor Egorov: Объясни, плз 02:08:58 Denis S: FormVIew) 02:08:59 Egor Egorov: create 02:09:01 Денис Карпов: Create 02:09:07 Denis S: да ёмоё) 02:09:11 Елена Курносова: ))) 02:09:13 Egor Egorov: )) 02:09:26 Елена Курносова: Ден, ты слишком много знаешь) 02:09:34 Denis S: нет) 02:14:09 Дмитрий С: Самое интересное началось, а к сож. скоро на поезд бежать((( 02:14:26 Denis S: не знаю чего они уходят, интересно же) 02:14:47 Egor Egorov: Поддерживаю 02:20:13 Denis S: переопределить метод ) 02:20:30 Egor Egorov: Сделать функцию отдельную 02:20:31 Денис Карпов: as_viev дополнить 02:20:32 Дмитрий С: контекст добавить 02:24:15 Denis S: а если будет невалидная форма, будет ошибка? 02:24:22 Денис Карпов: Г 02:24:23 Stacy Vedeneeva: через форм? 02:24:29 Денис Карпов: Update 02:24:32 vardeath: update 02:24:34 Egor Egorov: class EditPost(UpdateView): 02:24:43 Дмитрий С: Непонятно, синтаксис вьюхи в reverse news:detail_news 02:24:46 Denis S: unsuccess_url же мы не определяли) 02:25:18 Дмитрий С: лол 02:25:26 Egor Egorov: ) 02:25:36 Stacy Vedeneeva: строгие правила :D 02:26:15 Дмитрий С: да, имя откуда 02:27:55 Дмитрий С: ага, понял, удобно( 02:28:02 Дмитрий С: ) 02:29:23 vardeath: по-хорошему данную информацию вообще нужно в программу курса включить) 02:31:33 Дмитрий С: А инстанс он откуда берет? 02:34:46 Egor Egorov: + 02:34:49 Stacy Vedeneeva: да 02:34:57 Дмитрий С: да 02:35:04 Denis S: да) круто что используем разные варианты решения проблемы 02:35:04 Denis Smirnov: + 02:36:03 Дмитрий С: А если в урле будет например не слаг? 02:36:06 vardeath: property -что за декоратор? я забыл) 02:36:21 Денис Карпов: А slug получается уникальный 02:36:23 Denis S: ))) декоратор свойства 02:36:28 Дмитрий С: как класс понимает, что использовать? 02:36:33 Denis S: декоратор вычисляемого атрибута 02:37:05 Denis S: вообще property = name(fget, fset, fdel, doc) 02:37:32 Дмитрий С: например 02:39:28 Дмитрий С: не надо переделывать)) 02:39:38 Дмитрий С: главное механизм понять 02:40:21 Egor Egorov: + 02:40:21 Stacy Vedeneeva: да 02:40:25 Denis S: + 02:40:27 Дмитрий С: теперь да) 02:40:51 Denis S: миксинов не будет, да?) 02:48:19 vardeath: а как оптимизация SQL запросов в классе происходит? 02:48:20 Stacy Vedeneeva: контекстом 02:48:27 Денис Карпов: content 02:49:44 Egor Egorov: круто 02:50:19 Denis S: select_related например) 02:50:30 vardeath: prefetch_related тоже) 02:51:17 vardeath: понятно) спасибо) 02:52:06 Denis S: а если objects.filter? 02:52:16 Дмитрий С: Убегаю на поезд, придется досматривать в записи(( Адиль, спасибо большое! Очень нужный материал 02:55:39 Stacy Vedeneeva: Полезная магия 02:56:00 Denis S: а как его писать?) 02:59:32 Egor Egorov: +++ 02:59:35 Denis S: да 02:59:49 Roman Khrustalev: + 02:59:53 Stacy Vedeneeva: Офигенная штука - миксины 03:00:42 Denis S: а переопределение get() и post() мы обычно делаем в классе с View? 03:02:00 Denis S: У меня есть такой общий вопрос про VIEWs в целом. Видел, что советуют выносить всю бизнес логику из view в другие файлы и оставлять там только самое необходимое для шаблона. Имеет ли это право на жизнь и как это сделать? 03:02:02 Egor Egorov: Адиль, спасибо! Очень крутой вебинар. Вопросов нет, я пошел переделывать проект) 03:03:25 Denis S: Спасибо, крутой вебинар) 03:03:34 Roman Khrustalev: надо руками покодить, тогда будут вопросы )) 03:03:39 Dmitry Mal: спасибо 03:03:42 Egor Egorov: огонь 03:03:47 Stacy Vedeneeva: Огромное спасибо, надо будет попрактиковать)) 03:03:49 Kirill.Porshnev: Спасибо 03:03:50 vardeath: тебе спасибо) 03:03:53 Roman Khrustalev: спасибо!! 03:03:53 Egor Egorov: Хороших выходных! 03:03:56 Denis S: Спасибо Адиль,! 03:03:57 Egor Egorov: Всем пока