Мой Большой курс по Docker & Docker Compose с углубленным изучением с нуля (работаем, в том числе с этим Django проектом + деплой на AWS EC2): www.udemy.com/course/docker-full-course/?couponCode=PYTHONHUBSTUDIO-9-99 (Цена до 29 сентября) UPD: купон для скидки PYTHONHUBSTUDIO-9-99 уже включен в ссылку⬆️. Курс по Docker на UA-cam (короткая версия, для начинающих): ua-cam.com/video/wgA3yntF_ek/v-deo.html
По прохождению всего курса хочу еще раз выразить огромное СПАСИБО автору. Я вначале смотрел уроки со всяких "академий", где только по подписке, за деньги. Но там такой хлам. Лекции читают видно студенты. Делают все на ходу, допускают много ошибок, потом возвращаются к ним, исправляют. Это все вносит такую путаницу и раздражение в процесс обучения. Особенно меня убило в одном уроке прохождение ДЗ. Лектор (лет 18 наверное с Белоруссии) делал это в парке. Птиц и людей вокруг было слышнее лектора. Я очень рад, что нашел канал Python Hub Studio. Автор просто КРАСАВЧИК. Жду новых открытий для себя вместе с каналом.
Искала медь, а нашла золото! Давно хотела изучить Джанго, но делать это самостоятельно с документацией было трудно, а другие видео были непонятны и скомканы. Когда наткнулась на этот курс, то опять ни на что особо не надеялась, но как же я ошиблась! Спасибо огромное за подробные объяснения тонкостей работы фреймворка, за ответственную подготовку всех необходимых для сборки проекта материалов и файлов, приятную подачу и, как безработный студент, особое СПАСИБО за то, что данный контент находится бесплатно в открытом доступе. После прохождения курса осталось не только много знаний, разложенных по полочкам, но и желание продолжать изучать то, что Вы публикуете. Я теперь точно верный подписчик этого канала :) Желаю побольше сил и удачи, Автор!
Прежде всего, огромный респект за два видео. Очень познавательно про Django. Я уверен, что очень многим было бы познавательно и полезно увидеть как подружить Django и Vue.js. Я не имею сейчас ввиду один из самых простых способов - в templates через script в header импортировать vue и другие полезности, а в коде вместо {{}} использовать для Vue [[]] (прописав это в самом скрипте Vue. Я имею ввиду через static и прописывании путей в самом Django и Vue
Никогда не писал "сначала лайк потом просмотр", но сейчас поймал себя на мысли что так и сделал потому что уверен в качестве видео у этого автора, и тема мне интересна, хоть и ролик длинный
Лучше многих платных курсов. Лично я начинал проходить платный курс (небезызвестного одного человека) на степике изначально, а потом параллельно изучать этот по видео. Спустя неделю вернул платный курс, так как подача материала по сравнению с этим сравнительно хуже(по крайней мере для меня) огромное спасибо автору за прекрасную подачу материала теперь планирую пробовать самостоятельно сделать что то подобное
Это отличный курс! Огромная благодарность автору. Сам перехожу к изучению Джанги и поначалу непонятно, с чего вообще браться за пет и как разбираться на практике. Теперь я представляю, как сделать сайт-магазин под себя.
Добрый день. Закончил свой проект на основе уроков этого замечательного автора. Я не проходил никаких других уроков, только Django и HTML с этого канала. То, что у меня получилось в конце.... сам поверить не могу, что это сделал я. Спасибо учителю. Но вот одно но. Закончил и вылизал уже как больше месяца назад. Урока по нормальному деплою на канале нет. Углубился в просторы, и.... как обычно вода, не то, не это. Просьба к автору канала. Будет чуток времени, хоть коротенькое видео про деплой. У вас все всегда четко, ясно и понятно. А самое главное, что все работает. Спасибо.
Спасибо за Ваш отзыв! Я рад что у Вас получается, и хотелось бы в последствии увидеть ссылку на Ваш проект, так как Вы уже почти как родной)! Сейчас, временно, у меня проблемы со временем для записи новых видео (думаю обратили внимание))) Обязательно в скором (возможно ) времени продолжу этот плейлист, и, также, выпущу видео про деплой на сервер.
@@PythonHubStudio Спасибо. Вы мне тоже уже родной)). Со временем та же беда. Хочу перейти к доработке бота и никак. А вот задеплоить хотел как раз чтоб Вам показать и потенциальным заказчикам предоставить, чтоб Ваши 10% откатывать на развитие канала. Сделал сайт по заказу и доставке еды. Есть желающие его купить, но нет времени для монотонных поисков и деплоя методом проб и ошибок. Думаю как раз у нас время появится одновременно и Вы вернётесь нас радовать новыми знаниями.
Огромное спасибо за эти уроки! Очень жду продолжения) При авторизации пользователя с анонимной корзиной необходимо делать проверку совпадения товаров с сохранённой ранее корзиной и их соответственным суммированием (сам я это сделал, но хотелось бы посмотреть, как это реализуете Вы). Иначе в обновлённой после метода update корзине может появиться две (а то и более, если пользователь будет сначала наполнять корзину, а потом логиниться) записи одного товара
Да, там есть такой "баг") Как альтернативное, тоже правильное решение, удалять корзины(если есть) авторизованного пользователя, он все равно заново все набрал, а как обычно забыл/не обратил внимание, что и на аккаунте товары в корзине висели. Так будет даже лучше, чтоб не смущать на тему "а откуда это взялось в корзине")) Я бы сделал так, если нет четкой задачи.
Спасибо автору!!! Было очень интересно про узнать, как не перезагружать страницу при добавлении и изменении количества товара в корзине, про логику в моделях заказа и атомарные транзакции
Автор, Ваш контент как всегда СУПЕР! СПАСИБО! Планируете ли Вы создать такой же развернутый, подробный курс по разворачиванию проекта "Django & PostgreSQL & DjangoRestFullAPI" в Kubernetes с реализацией CI/CD?
Огромная благодарность, благодаря Вам очень многое выучил, что приходилось по кускам искать. Вопрос. Вы не могли бы сделать короткое видео интеграции Django и Firebase - регистрация / аутентификация пользователя именно ресурсами Firebase в Django проекте, сброс пароля, профиль, редактирование и реализация элементарных моделей с аутентификацией. Пытаюсь смотреть примеры в сети, там такие огороды, что брови дыбом. Если это возможно было бы супер.🙏
В модель orders к status добавил параметр choices choices=(('В обработке', 'В обработке'), ('Отправлено', 'Отправлено'), ('Доставлено', 'Доставлено'), ('Отказано', 'Отказано')) Такая мелочь, но как удобнее теперь. Всем советую.
@@ВремяХайп4 С одно стороны стоит то, что выводится на экран, с другой то, что попадает в базу. Типа как название - значение. В этом варианте название и значение совпадают. Но может вы захотите как то иначе.
Добрый день, у вас не правильно настроено перенаправление в блоке except - c помощью return redirect(reverse('orders:create_order')). Этот метод редиректит с помощью GET. В этом случае пользователю заново надо будет вбивать и телефон и адрес. Нужно использовать return render(request, 'orders/create_order.html', context)
Спасибо за курс! Столкнулся с проблемой, что при нажатии на + и - в корзине, у меня количество и цена изменяются как надо, но все товары в корзине меняются местами. С чем это может быть связано, не подскажите?
В видео был момент, где было указано в модели (по-моему в модели product), в мета описании класса ordering = ("id",). Проверьте свою модель product на наличие этого и можете продублировать это в модели cart
Ладно про хостинг это вопрос по вкусу, но самое сложное в понимание это как подготовить Django и PostgreSQL к деплою, нужно ли и как установить на сервер Gunicorn/uWSGI, Nginx ??
Протестируйте каждый вариант по раз 10-20, чтоб можно было посчитать реальную разницу. Скорость ответа диска в каждый момент времени разная, в зависимости от сумарной нагрузки
Спрошу автора отдельным сообщением. Что то прет меня сегодня на вопросы))). Вы обработали очень хорошо удаление возможности сделать заказ при удалении товаров из корзины в самой корзине. Но, если удалять товар из корзины уже в форме заказа, то обработок нет. И при пустой корзине форма заказа не уходит. Дайте направление что там и где нужно подправить, чтоб она просто уходила в индекс. Спасибо.
Так как запрос идет от jquery, то и работать нужно с ней. В контроллере django после строки с рендера в строку: a = '/'+'/'.join(request.META['HTTP_REFERER'].split('/')[3:]) b = reverse("orders:create_order") if len(user_cart) == 0 and a == b: redirect_to_home = True else: redirect_to_home = False response_data = { "message": "Товар удален", "cart_items_html": cart_items_html, "quantity_deleted": quantity, "redirect_to_home": redirect_to_home } return JsonResponse(response_data) В jquery, после перерисовки элементов, напрмер: // Меняем содержимое корзины на ответ от django (новый отрисованный фрагмент разметки корзины) var cartItemsContainer = $("#cart-items-container"); cartItemsContainer.html(data.cart_items_html); // Проверяем, нужно ли перенаправить на главную страницу if (data.redirect_to_home) { window.location.href = '/';
@@PythonHubStudio Умеете отвечать для чайников)))). Вроде как и ответ есть, но подумать заставили. И вроде как фигурную скобку случайно не дописали, чтоб мозг работал. ИТОГО. Спасибо. Все получилось на отлично. Вы, не устану этого повторять, ЛУЧШИЙ!!!
так ну да я солидарен со всеми хорошими коментами я вот только доделал и у меня есть вопрос такой автору когда будет 3 часть про прикрутить платежку звучало интересно так-то )
Согласен, что было бы круче, но на пересмотр видео после монтажа и кроме тематических таймкодов делать ещё и по коммитам сил не хватило... И свободного времени от работы не так много. Если кто-то сделает и опубликует - большая благодарность!!!
Спасибо огромное за ваш курс. Могли бы вы прокомментировать непонятную ситуацию: повторял ваше видео строчку за строчкой, все получалось, потом как только дошли до применения ajax для корзины начались проблемы (DoesNotExist at /cart/cart_add/ в браузере Google Chrome). Много чего перечитал, но ошибку устранить не удалось. Попробовал еще напоследок проверить через браузер Яндекса. И о чудо заработало. Могли бы натолкнуть на мысль с чем конкретно это связано?
Все что есть в видео тестировалось в браузерах chrome и edge. Да, я понимаю, что они оба на одном движке chromium.. Но, если у вас это не работает в этих браузерах, то сверьте код с исходником на гитхабе. Кротчайший путь, проверить в чем проблема - запустить код с гитхаба без изменений на этих браузерах. Если работает - ошибка у вас, если не работает - или обновите браузер или это фантастика и я где-то накосячил
Я чуть не застрелился нахрен, та же самая ошибка. 5 часов искал причину, несколько раз переписал код с нуля. Скачал коммит с гитхаба, ошибка осталась. Полез в комменты, обновил страницу с кешем, все заработало
03:14:57 - почему мы по-разному предоставляем варианты выбора и для каких целей применяется второй вариант (где булевы значения представлены в виде строк)?: requires_delivery = forms.ChoiceField( choices=[ ("0", False), ("1", True), ], ) ... payment_on_get = forms.ChoiceField( choices=[ ("0", "False"), ("1", "True"), ], )
Подскажите пожалуйста, никто не сталкивался с таким: На странице оформления заказа две кнопки оформить заказ(одна от included_cart, а вторая от create_order)?
Спасибо за курс, я практически все понял) У меня возникла ошибка при подключении SMTP от Яндекс и она ведет на строку (return get_user_carts(request)) и (if request.user.is_authenticated:) Может вы знаете в чем проблема? Может там нужно поправить пару строк а я не понимаю где и как. Я бы прикрепил скриншот ошибки но здесь нельзя так сделать( Возможно мы могли бы с вами списаться в какой нибудь соц.сети?
1) Переопределяли бекенд для авторизации в settings на свой кастомный для входа по email или оставили базовый бекенд? Если переопределяли, то метод get_user проверьте/добавьте. 2) Проверьте через дебаггер (поставьте точку останова) на строке is_authenticated и посмотрите значения в request.user и request.user.is_authenticated, какие там значения, чтоб понять что идёт не так. И самый главный вопрос - что именно делает user (входит в аккаунт, верифицирует почту по ссылке)?
@@PythonHubStudio 1) Бекенд переопределял, когда был консольный бекенд он работал, когда уже подключил .....smtp.EmailBackend перестал работать. Метод get_user куда добавить? 2) Обе те строчки с ошибками они находяться в методе get_user_carts из за этого в самом верху Exception Type: AttributeError Exception Value: 'str' object has no attribute 'user' А ниже выделена строчка кода: {% user_carts request as carts %} Я выяснил только то что в обе случаях request равен строковому значение в котором пусто.(и причем тут карточка козины я не понимаю) 3) А все это делается для сброса пароля по email, когда я ввожу правильный еmail то происходит вся эта ошибка, если не правильный ввести то перекидывает на страницу где указано что письмо отправлено к вам на почту и т.д
Мне тоже оповещение о вашем комментарии не пришло, вспомнил про вас и налистал. Видимо какой-то сбой... 1) Я имел ввиду бекенд для авторизации пользователя по полю email, в отличие от стандартного по полю логин. А не бекенд для работы с smpt.email. 2) Этот код запускается неявно (вне контроллера) при заходе/перенаправлении на страницу, где есть корзина (та которая в модальном окне) и работает шаблонный тег, который вы написали. (Если перенаправление на login, попробуйте убрать корзину с этой страницы. 3 и 4) Не понятно почему при вводе неправильного email у вас отображается окно "проверьте почту", а при вводе "ПРАВИЛЬНОГО" - ошибка... Должно же быть наоборот...
Я, наверное, замучил с вопросами. Но это как финал по прохождению курса. Многие сам решил уже. Что нужно изменить (я еще не прошел просто курс html), что бы при просмотре на мобильном устройстве, при вызове меню, оно выезжало не сверху - вниз, а слева - направо? Кнопку "Фильтры" я вправо смог перенести, чтобы она не сливалась с кнопкой "Каталог"
Вопросы это хорошо, ответить не трудно.) Навигационная панель bootstrap выезжает сверху вниз. Переделать именно ее сложно, так как это готовая сборка с множеством взаимосвязанных стилей и готовый javascript от bootstrap. Намного лучше и проще сделать свою. Это можно сделать разными вариантами: 1) Собрать ее из других компонентов того же bootstrap. 2) На чистом html&css (есть в видео курсе про html&css 3) html+css+javascript Но если речь идёт про меню "мой профиль", то можно попробовать у тега li, который оборачивает кнопку "мой профиль" и вложенный url, изменить класс dropdown на dropend, у вложенного ul добавить стиль position-absolute, и все это(тег li с этим содержимым) поместить в div с классом d-inline-flex
Помогите пожалуйста, когда я нажимаю на корзину ничего не происходит, а когда нажимаю зел. значок мне выкидывают ошибку мол несуществует такой страницы и указывают на product_id = request.POST.get("product_id") в cart_add что делать?
А как подключиться к сайту с другого устройства? Пробовал в одной сети wi-fi вводить ip компьютера (192.168.*.*:8000), пробовал вводить глобальный ip компьютера, попутно добавляя эти ip в переменную internal_ips в файле settings.py (пробовал даже пустым делать список) и ничего не работало :(
Сделал всё как на видео, но у меня 1 400 000 продуктов. inlines просто не работает. висит по 30 минут и не отображаются продукты внутри заказов. fields = "product", "name", "price", "quantity" убираю product и грузится очень быстро. как сделать чтобы и "product" был и грузилось быстро.??? на видео видно, что поле "product" позволяет выбирать из всех продуктов. у меня их 1 400 000 и в каждую строку получается пытаются подгрузиться все. думаю это плохая идея в поле подгружать всю базу )))
Можно такой вопрос задать. На сколько более проработанный код в вашем примере, нежели, например на вордпрессе? Вообще-то не планирую верстать интернет-магазины, но начинать обучение решил с наиболее простого, как мне кажется, и распространенного - верстания сайтов. По ходу обучения кажется достаточно все продумано. И отсюда вопрос, вытесняют ли ворд пресс такие более глубокие разработки или они тоже не отстают?
Мой Большой курс по Docker & Docker Compose с углубленным изучением с нуля (работаем, в том числе с этим Django проектом + деплой на AWS EC2):
www.udemy.com/course/docker-full-course/?couponCode=PYTHONHUBSTUDIO-9-99
(Цена до 29 сентября)
UPD: купон для скидки PYTHONHUBSTUDIO-9-99 уже включен в ссылку⬆️.
Курс по Docker на UA-cam (короткая версия, для начинающих):
ua-cam.com/video/wgA3yntF_ek/v-deo.html
По прохождению всего курса хочу еще раз выразить огромное СПАСИБО автору. Я вначале смотрел уроки со всяких "академий", где только по подписке, за деньги. Но там такой хлам. Лекции читают видно студенты. Делают все на ходу, допускают много ошибок, потом возвращаются к ним, исправляют. Это все вносит такую путаницу и раздражение в процесс обучения. Особенно меня убило в одном уроке прохождение ДЗ. Лектор (лет 18 наверное с Белоруссии) делал это в парке. Птиц и людей вокруг было слышнее лектора.
Я очень рад, что нашел канал Python Hub Studio. Автор просто КРАСАВЧИК. Жду новых открытий для себя вместе с каналом.
Чел, ты просто красавчик! Редко пишу комменты, а тут даже денюжек закину! Привел мои знания после курсов в порядок и нормальную структуру! От души!💯
Ждем видеоуроки по Django DRF!!! Очень бы хотелось посмотреть)
было бы очень круто
да, очень ждем)) будет логичным продолжением))
Автор, спасибо тебе огромное за очень внятное, четкое и при этом краткое изложение. Очень приятно и легко учиться по этим видео.
самый лучший курс по django, буквально тут можно научиться всему что нужно
Искала медь, а нашла золото!
Давно хотела изучить Джанго, но делать это самостоятельно с документацией было трудно, а другие видео были непонятны и скомканы. Когда наткнулась на этот курс, то опять ни на что особо не надеялась, но как же я ошиблась!
Спасибо огромное за подробные объяснения тонкостей работы фреймворка, за ответственную подготовку всех необходимых для сборки проекта материалов и файлов, приятную подачу и, как безработный студент, особое СПАСИБО за то, что данный контент находится бесплатно в открытом доступе. После прохождения курса осталось не только много знаний, разложенных по полочкам, но и желание продолжать изучать то, что Вы публикуете. Я теперь точно верный подписчик этого канала :)
Желаю побольше сил и удачи, Автор!
Благодарю!
Автору бесконечные благодарности за его труд!!! Лучший контент по теме, который только может быть.🎉
Больше спасибо Вам! 15 часов видео а за кадром сколко работы. Здоровья вам и добра!
Огромное спасибо автору за курс! Начинал с нуля изучать python на этом канале, теперь прошел и джангу) С нетерпением жду продолжение!
Прежде всего, огромный респект за два видео. Очень познавательно про Django. Я уверен, что очень многим было бы познавательно и полезно увидеть как подружить Django и Vue.js. Я не имею сейчас ввиду один из самых простых способов - в templates через script в header импортировать vue и другие полезности, а в коде вместо {{}} использовать для Vue [[]] (прописав это в самом скрипте Vue. Я имею ввиду через static и прописывании путей в самом Django и Vue
Красавчик! Реально голова!!! Продолжай в том же духе!!!
Просто потрясающий контент! Спасибо огромное за труд! Ждем апи к этому проекту + подключение платежек
Никогда не писал "сначала лайк потом просмотр", но сейчас поймал себя на мысли что так и сделал потому что уверен в качестве видео у этого автора, и тема мне интересна, хоть и ролик длинный
Вау!!!! кайф! я только учусь и искал, где сделать, чтобы в корзине + - работали, а тут прям отдельно про это в тайм кодах! Кайф! спасибо автор.
Огромное спасибо за хороший, структурированный курс! Первую часть прошел с удовольствием за несколько дней, приступаем ко второй!)
Лучше многих платных курсов. Лично я начинал проходить платный курс (небезызвестного одного человека) на степике изначально, а потом параллельно изучать этот по видео.
Спустя неделю вернул платный курс, так как подача материала по сравнению с этим сравнительно хуже(по крайней мере для меня)
огромное спасибо автору за прекрасную подачу материала
теперь планирую пробовать самостоятельно сделать что то подобное
Благодарю, за приятный отзыв)!
Это отличный курс! Огромная благодарность автору. Сам перехожу к изучению Джанги и поначалу непонятно, с чего вообще браться за пет и как разбираться на практике. Теперь я представляю, как сделать сайт-магазин под себя.
Автору спасибо. Ценность материала, подача - всё на уровне. Отдельный респект за тайм коды.
Огромное спасибо за хороший, качественный курс! Первую часть прошел с удовольствием за несколько дней
Огромное спасибо, за проделанную работу.
Прости за троллинг, ты - лучший
Хотелось бы увидеть как завернуть все в докер контейнеры и обустроить сборку и тесты в Git Lab
Присоединяюсь к данной просьбе полностью.
Добрый день. Закончил свой проект на основе уроков этого замечательного автора. Я не проходил никаких других уроков, только Django и HTML с этого канала. То, что у меня получилось в конце.... сам поверить не могу, что это сделал я. Спасибо учителю. Но вот одно но. Закончил и вылизал уже как больше месяца назад. Урока по нормальному деплою на канале нет. Углубился в просторы, и.... как обычно вода, не то, не это. Просьба к автору канала. Будет чуток времени, хоть коротенькое видео про деплой. У вас все всегда четко, ясно и понятно. А самое главное, что все работает. Спасибо.
Спасибо за Ваш отзыв! Я рад что у Вас получается, и хотелось бы в последствии увидеть ссылку на Ваш проект, так как Вы уже почти как родной)! Сейчас, временно, у меня проблемы со временем для записи новых видео (думаю обратили внимание))) Обязательно в скором (возможно ) времени продолжу этот плейлист, и, также, выпущу видео про деплой на сервер.
@@PythonHubStudio Спасибо. Вы мне тоже уже родной)). Со временем та же беда. Хочу перейти к доработке бота и никак. А вот задеплоить хотел как раз чтоб Вам показать и потенциальным заказчикам предоставить, чтоб Ваши 10% откатывать на развитие канала. Сделал сайт по заказу и доставке еды. Есть желающие его купить, но нет времени для монотонных поисков и деплоя методом проб и ошибок. Думаю как раз у нас время появится одновременно и Вы вернётесь нас радовать новыми знаниями.
Огромная благодарность Вам Уважаемый Автор!!! 🤝
ЖДУ ОЧЕНЬ ПРО ФУНКЦИИ ОПЛАТЫ )))) ПОЖАЛУЙССССТАААА ))))
Очень понятно автор очень хороший. Желаю вам здоровья и всего хорошего
Автору - респект.
Аллилуйя!!! Спасибо огромное🎉🤩
Отличный урок! Было бы круто, если бы ты еще рассказал как выложить этот сайт в эти ваши интернеты :)
Это точно))
Спасибо огромное, очень помогли. Надеюсь расскажете про social аутентификацию, для многих проектов это очень важно.
Автот , ты титан. Столько труда ! Просто сразу шляпу снимаю. Спа-си-бо
Огромное спасибо за эти уроки! Очень жду продолжения)
При авторизации пользователя с анонимной корзиной необходимо делать проверку совпадения товаров с сохранённой ранее корзиной и их соответственным суммированием (сам я это сделал, но хотелось бы посмотреть, как это реализуете Вы). Иначе в обновлённой после метода update корзине может появиться две (а то и более, если пользователь будет сначала наполнять корзину, а потом логиниться) записи одного товара
Да, там есть такой "баг") Как альтернативное, тоже правильное решение, удалять корзины(если есть) авторизованного пользователя, он все равно заново все набрал, а как обычно забыл/не обратил внимание, что и на аккаунте товары в корзине висели. Так будет даже лучше, чтоб не смущать на тему "а откуда это взялось в корзине")) Я бы сделал так, если нет четкой задачи.
Большое человеческое спасибо за ролик, очень продуктивно.
Спасибо большое ! Отличный курс !
Спасибо автору!!! Было очень интересно про узнать, как не перезагружать страницу при добавлении и изменении количества товара в корзине, про логику в моделях заказа и атомарные транзакции
Только что закончил первую часть. Ну, что тут сказать? Супер. Спасибо большое и с наступающим!
Автор, Ваш контент как всегда СУПЕР! СПАСИБО! Планируете ли Вы создать такой же развернутый, подробный курс по разворачиванию проекта "Django & PostgreSQL & DjangoRestFullAPI" в Kubernetes с реализацией CI/CD?
Это лучший курс, большое спасибо!!!!!
А выйдет продолжение?) (это я про оплату заказа)
Будет но позже, пока времени нет...
Браво. за такое надо кучу денег брать)
This is really good, thank you, please keep up the good work
Спасибо большое!
Спасибо, бро, это были долгие 15 часов( месяц делал)
Даже нет слов просто спасибо!
Отличный материал. Благодарность и лайк тебе за труд дружище!
Огромная благодарность, благодаря Вам очень многое выучил, что приходилось по кускам искать. Вопрос. Вы не могли бы сделать короткое видео интеграции Django и Firebase - регистрация / аутентификация пользователя именно ресурсами Firebase в Django проекте, сброс пароля, профиль, редактирование и реализация элементарных моделей с аутентификацией. Пытаюсь смотреть примеры в сети, там такие огороды, что брови дыбом. Если это возможно было бы супер.🙏
Эта часть вообще огонь 🔥
благодарность ))
лайк
В модель orders к status добавил параметр choices
choices=(('В обработке', 'В обработке'),
('Отправлено', 'Отправлено'),
('Доставлено', 'Доставлено'),
('Отказано', 'Отказано'))
Такая мелочь, но как удобнее теперь. Всем советую.
А почему дублируются слова?
@@ВремяХайп4 С одно стороны стоит то, что выводится на экран, с другой то, что попадает в базу. Типа как название - значение. В этом варианте название и значение совпадают. Но может вы захотите как то иначе.
шикарые видео, хотелось бы увидеть как задеплоидить проект
Я только первую часть начал, а тут еще и вторая :).
Спасибо автору за вторую часть!
Первую уже осилил. )))
Спасибо огромное за Ваши старания, отличный материал, прекрасная подача! Когда можно рассчитывать на выход продолжения?)
По срокам не скажу, к сожалению...
Крутое обучение, СПАСИБО!!!! очень хочется посмотреть как ты добавишь сюда платежную систему!!!!!
Курс огонь, ждем еще
вы просто супер, курс по django еще будет продолжаться?
Будет
Благодарю за шикарный материал
Класс спасибо очень понравилось. Еще бы оплату и Docker
Спасибо🙏💕 коммент в поддержку
Автору респект за курсы бесплатные, однако посоветовал бы ему поправить битрейт, чтобы лагов не было ❤
Добрый день можете показать как подключить к магазину оплату банковский карточек
Spasibo bro! Udachi tebe
Очень позновательный курс! Огромное спасибо автору! А продолжение будет?
Желательно. Хочу сделать но пока рук не хватает
Спасибо тебе огромное!
Добрый день, у вас не правильно настроено перенаправление в блоке except - c помощью return redirect(reverse('orders:create_order')). Этот метод редиректит с помощью GET. В этом случае пользователю заново надо будет вбивать и телефон и адрес. Нужно использовать return render(request, 'orders/create_order.html', context)
Спасибо за курс! Жду продолжение! Вопрос, ты не думал добавить в проект тесты? Я думаю, что это полезно.
супер советую
Огромное спасибо за Ваш курс. Ютуб более не предоставляет возможности скачать его в хорошем качестве. Можно Вас попросить получить эти два видео?
Большое спасибо
Почему то на 1:32:44 выдает ошибку: DoesNotExist at /cart/cart_add/
И ссылается на строчку product=Products…
Не понимаю почему
Посмотрите через дебаггер, что попадает в переменную, которая передается в запрос к бд, и далее в обратном порядке проследите где опечатка/ошибка
@@PythonHubStudioоказывается все было нормально, нужно было просто обновить страницу со сбросом кэша🤔
Спасибо за урок. Планируете записать видео о развертывании сайта джанго на облачном сервисе? Вы отлично объясняете.
Планирую
Отлично. А будет в продолжении раскрыт вопрос как добавить товары списком из 1С и как обновлять цены из 1С?)) было бы отлично)
топ! спасибо большое!
Спасибо за курс! Столкнулся с проблемой, что при нажатии на + и - в корзине, у меня количество и цена изменяются как надо, но все товары в корзине меняются местами. С чем это может быть связано, не подскажите?
В видео был момент, где было указано в модели (по-моему в модели product), в мета описании класса ordering = ("id",).
Проверьте свою модель product на наличие этого и можете продублировать это в модели cart
@@PythonHubStudio была та же проблема, решение помогло, спасибо)
Первая часть-лучший видеоурок из всех что мне доводилось видеть! Но вторая... Мда.
Что не так? jquery смутил?
Ладно про хостинг это вопрос по вкусу, но самое сложное в понимание это как подготовить Django и PostgreSQL к деплою, нужно ли и как установить на сервер Gunicorn/uWSGI, Nginx ??
спасибо!😎👏👍
А когда следующая часть? Хотелось бы еще про Class Based View представления посмотреть, или о возможности добавления модификаторов, типа цвета мебели)
3:32:02 Ранее два запроса выполнялись за 16 мс, после объединения - за 60 мс
Протестируйте каждый вариант по раз 10-20, чтоб можно было посчитать реальную разницу. Скорость ответа диска в каждый момент времени разная, в зависимости от сумарной нагрузки
Спрошу автора отдельным сообщением. Что то прет меня сегодня на вопросы))). Вы обработали очень хорошо удаление возможности сделать заказ при удалении товаров из корзины в самой корзине. Но, если удалять товар из корзины уже в форме заказа, то обработок нет. И при пустой корзине форма заказа не уходит. Дайте направление что там и где нужно подправить, чтоб она просто уходила в индекс. Спасибо.
Так как запрос идет от jquery, то и работать нужно с ней.
В контроллере django после строки с рендера в строку:
a = '/'+'/'.join(request.META['HTTP_REFERER'].split('/')[3:])
b = reverse("orders:create_order")
if len(user_cart) == 0 and a == b:
redirect_to_home = True
else:
redirect_to_home = False
response_data = {
"message": "Товар удален",
"cart_items_html": cart_items_html,
"quantity_deleted": quantity,
"redirect_to_home": redirect_to_home
}
return JsonResponse(response_data)
В jquery, после перерисовки элементов, напрмер:
// Меняем содержимое корзины на ответ от django (новый отрисованный фрагмент разметки корзины)
var cartItemsContainer = $("#cart-items-container");
cartItemsContainer.html(data.cart_items_html);
// Проверяем, нужно ли перенаправить на главную страницу
if (data.redirect_to_home) {
window.location.href = '/';
@@PythonHubStudio Ничего себе, направление. Целый урок. Буду пробовать. По результату отпишусь. Спасибо за наилучшую обратную связь.
Это нужно просто добавить в контроллеры delete и change cart, и в соответствующие функции jquery (которые уже есть). Так что ничего серьезного.)
@@PythonHubStudio Умеете отвечать для чайников)))). Вроде как и ответ есть, но подумать заставили. И вроде как фигурную скобку случайно не дописали, чтоб мозг работал. ИТОГО. Спасибо. Все получилось на отлично. Вы, не устану этого повторять, ЛУЧШИЙ!!!
Может еще деплой на сервер запилить и подключить к телеграм боту?
Можно, подкинуть туда бота хорошая идея
так ну да я солидарен со всеми хорошими коментами я вот только доделал и у меня есть вопрос такой автору когда будет 3 часть про прикрутить платежку звучало интересно так-то )
По мере сил и свободного времени на канал. Сроков обещать не могу.
Автор, было бы круче, если бы Вы помечали, какой из таймкодов совпадает с коммитом, чтобы можно было ориентироваться на логические блоки в этом плане
Согласен, что было бы круче, но на пересмотр видео после монтажа и кроме тематических таймкодов делать ещё и по коммитам сил не хватило... И свободного времени от работы не так много. Если кто-то сделает и опубликует - большая благодарность!!!
Если у вас id через ajax = None сбрасывать кэш.
Спасибо огромное за ваш курс. Могли бы вы прокомментировать непонятную ситуацию: повторял ваше видео строчку за строчкой, все получалось, потом как только дошли до применения ajax для корзины начались проблемы (DoesNotExist at /cart/cart_add/ в браузере Google Chrome). Много чего перечитал, но ошибку устранить не удалось. Попробовал еще напоследок проверить через браузер Яндекса. И о чудо заработало. Могли бы натолкнуть на мысль с чем конкретно это связано?
Все что есть в видео тестировалось в браузерах chrome и edge. Да, я понимаю, что они оба на одном движке chromium.. Но, если у вас это не работает в этих браузерах, то сверьте код с исходником на гитхабе. Кротчайший путь, проверить в чем проблема - запустить код с гитхаба без изменений на этих браузерах. Если работает - ошибка у вас, если не работает - или обновите браузер или это фантастика и я где-то накосячил
@@PythonHubStudio Спасибо за ответ. Вся проблемка крылась в том, что запускал страницу без обновления кэша. Благодарю за оказанную помощь :)
@@paypaylord8251 Спасибо за ваш комментарий! с этой же проблемой боролась и уже думала, что это у меня руки кривые
Я чуть не застрелился нахрен, та же самая ошибка. 5 часов искал причину, несколько раз переписал код с нуля. Скачал коммит с гитхаба, ошибка осталась. Полез в комменты, обновил страницу с кешем, все заработало
0:53:00 Обновлявемся... и странно, что ошибок никаких не было, ладно, давайте смотреть 😅😂😂😂
1 часть супер. Спасибо. 2 еще не смотрел.
А будет 3 часть, гду в views все функции поменяйте на class? Очень надеюсь будет
Будет
Когда стоит ожидать третью часть?)
03:14:57 - почему мы по-разному предоставляем варианты выбора и для каких целей применяется второй вариант (где булевы значения представлены в виде строк)?:
requires_delivery = forms.ChoiceField(
choices=[
("0", False),
("1", True),
],
)
...
payment_on_get = forms.ChoiceField(
choices=[
("0", "False"),
("1", "True"),
],
)
Вторая часть в кортеже - для удобства чтения человеком, что именно значит первая часть. И там можно написать что угодно (пример)
@@PythonHubStudio, понял, просто демонстрация разных возможных вариантов. Спасибо.
Подскажите пожалуйста, никто не сталкивался с таким:
На странице оформления заказа две кнопки оформить заказ(одна от included_cart, а вторая от create_order)?
У кнопки "оформить заказ" в included_carts должно быть условие if carts and not order
@@ВиталийЖуравлев-д6и у меня это есть, но кнопки всеравно 2
В orders views в контексте create_order должно быть 'order': True@@OleksiiS-f2f
@@ВиталийЖуравлев-д6и у вас не было такой проблемы ?
@@ВиталийЖуравлев-д6и у вас не было такой проблемы ?
Thanks!
Благодарю за поддержку канала!👍
Здравствуйте! Спасибо за супер полезный материал! Будет ли в продолжении тема оплаты и доставки (безопасной сделки)?
Должно быть), будет публиковаться по возможности времени на это.
Спасибо!
Спасибо за курс, я практически все понял)
У меня возникла ошибка при подключении SMTP от Яндекс и она ведет на строку (return get_user_carts(request)) и (if request.user.is_authenticated:)
Может вы знаете в чем проблема? Может там нужно поправить пару строк а я не понимаю где и как.
Я бы прикрепил скриншот ошибки но здесь нельзя так сделать(
Возможно мы могли бы с вами списаться в какой нибудь соц.сети?
1) Переопределяли бекенд для авторизации в settings на свой кастомный для входа по email или оставили базовый бекенд?
Если переопределяли, то метод get_user проверьте/добавьте.
2) Проверьте через дебаггер (поставьте точку останова) на строке is_authenticated и посмотрите значения в request.user и request.user.is_authenticated, какие там значения, чтоб понять что идёт не так.
И самый главный вопрос - что именно делает user (входит в аккаунт, верифицирует почту по ссылке)?
@@PythonHubStudio
1) Бекенд переопределял, когда был консольный бекенд он работал, когда уже подключил .....smtp.EmailBackend перестал работать.
Метод get_user куда добавить?
2) Обе те строчки с ошибками они находяться в методе get_user_carts из за этого в самом верху
Exception Type: AttributeError
Exception Value: 'str' object has no attribute 'user'
А ниже выделена строчка кода: {% user_carts request as carts %}
Я выяснил только то что в обе случаях request равен строковому значение в котором пусто.(и причем тут карточка козины я не понимаю)
3) А все это делается для сброса пароля по email, когда я ввожу правильный еmail то происходит вся эта ошибка, если не правильный ввести то перекидывает на страницу где указано что письмо отправлено к вам на почту и т.д
@@PythonHubStudio почему когда я отвечаю на ваш комментарий у меня мой комментарий пропадет?
Мне тоже оповещение о вашем комментарии не пришло, вспомнил про вас и налистал. Видимо какой-то сбой...
1) Я имел ввиду бекенд для авторизации пользователя по полю email, в отличие от стандартного по полю логин. А не бекенд для работы с smpt.email.
2) Этот код запускается неявно (вне контроллера) при заходе/перенаправлении на страницу, где есть корзина (та которая в модальном окне) и работает шаблонный тег, который вы написали. (Если перенаправление на login, попробуйте убрать корзину с этой страницы.
3 и 4) Не понятно почему при вводе неправильного email у вас отображается окно "проверьте почту", а при вводе "ПРАВИЛЬНОГО" - ошибка... Должно же быть наоборот...
Я, наверное, замучил с вопросами. Но это как финал по прохождению курса. Многие сам решил уже.
Что нужно изменить (я еще не прошел просто курс html), что бы при просмотре на мобильном устройстве, при вызове меню, оно выезжало не сверху - вниз, а слева - направо?
Кнопку "Фильтры" я вправо смог перенести, чтобы она не сливалась с кнопкой "Каталог"
Вопросы это хорошо, ответить не трудно.) Навигационная панель bootstrap выезжает сверху вниз. Переделать именно ее сложно, так как это готовая сборка с множеством взаимосвязанных стилей и готовый javascript от bootstrap. Намного лучше и проще сделать свою.
Это можно сделать разными вариантами:
1) Собрать ее из других компонентов того же bootstrap.
2) На чистом html&css (есть в видео курсе про html&css
3) html+css+javascript
Но если речь идёт про меню "мой профиль", то можно попробовать у тега li, который оборачивает кнопку "мой профиль" и вложенный url, изменить класс dropdown на dropend, у вложенного ul добавить стиль position-absolute, и все это(тег li с этим содержимым) поместить в div с классом d-inline-flex
Дякую тобі!
Дякую за підтримку каналу!
1:03:42 тег с query set c корзинами уже прописан в инклуде included_cart. Вроде не надо его в остальных шаблонах прописывать.
Помогите пожалуйста, когда я нажимаю на корзину ничего не происходит, а когда нажимаю зел. значок мне выкидывают ошибку мол несуществует такой страницы и указывают на product_id = request.POST.get("product_id") в cart_add что делать?
Проверить шаблон на опечатки в именах атрибутов где указаны данные товара id и тд, которые ловит javascript
обновить страницу с обновлением кэша, тоже на такую ошибку нарвался)
Удалось найти решение? Тоже столкнулась с такой проблемой, опечаток нет, все проверила
@@Программирование-о6р обновляли страницу в браузере со сбросом кэша? ctrl+f5
Да, и с другого браузера пробовала заходить (как писали в каком-то из комментов)
А как подключиться к сайту с другого устройства? Пробовал в одной сети wi-fi вводить ip компьютера (192.168.*.*:8000), пробовал вводить глобальный ip компьютера, попутно добавляя эти ip в переменную internal_ips в файле settings.py (пробовал даже пустым делать список) и ничего не работало :(
Сделал всё как на видео, но у меня 1 400 000 продуктов. inlines просто не работает. висит по 30 минут и не отображаются продукты внутри заказов. fields = "product", "name", "price", "quantity" убираю product и грузится очень быстро. как сделать чтобы и "product" был и грузилось быстро.??? на видео видно, что поле "product" позволяет выбирать из всех продуктов. у меня их 1 400 000 и в каждую строку получается пытаются подгрузиться все. думаю это плохая идея в поле подгружать всю базу )))
Можно такой вопрос задать. На сколько более проработанный код в вашем примере, нежели, например на вордпрессе? Вообще-то не планирую верстать интернет-магазины, но начинать обучение решил с наиболее простого, как мне кажется, и распространенного - верстания сайтов. По ходу обучения кажется достаточно все продумано. И отсюда вопрос, вытесняют ли ворд пресс такие более глубокие разработки или они тоже не отстают?
Word press - шаблонная однотипная сборка. Здесь же - свобода действий. Если сравнивать в этом контексте.