Я делал телеграм бота и сам изучал sql запросы. Когда перешёл к изучению Джанго не понимал как обращаться к базе данных и думал, что придеться создавать отельный файл, в котором нужно было бы прописывать все запросы, а это видео полностью ответило на мои вопросы и все стало куда понятнее. Спасибо автору за такие поленые уроки!
Мной для изучения python и django исользуются около 10 аналогичных каналов. Могу с уверенностью сказать на сегодня, настоящий канал N1 в части разнообразия и качества предостааляемого материала. Буду с нетерпением ждать продолжение по ORM. Гори в АДУ тот кто поставил дизлайк этому уроку.
Хочу выразить огромную благодарность автору за проделанный труд, внимание концентрируется всегда в нужном направлении и понимаешь материал. У Сергея определенно есть дар к преподаванию, спасибо огромное за столь великолепный бесплатный материал, это большого стоит!
0:00 - Вступление 2:21 - Начало 4:31 - Методы сортировки 6:10 - Метод filter() (список записей по атрибуту) 7:03 - Обработка данных связанных таблиц 9:59 - Запросы с использованием первичной модели (_set) 12:34 - Фильтры полей (lookups) 17:57 - Класс Q: И, ИЛИ, НЕ 21:28 - Быстрое получение записи из таблицы 23:04 - Получение записи по дате 24:44 - Выбор записи относительно текущей (по дате) 26:48 - exists() и count() 29:24 - Обращение к полю первичной модели ч-з атрибут 34:33 - Функции агрегации (некоторые) 38:28 - Выбор записи и конкретных её полей 42:08 - Группировка записей (метод annotate) 47:59 - Класс F 52:13 - Вычисления на стороне СУБД 54:57 - raw SQL запросы 1:00:51 - Передача параметров в запрос 1:02:57 - Конец
Добрый день. Хочу высказать своё мнение по поводу такого формата. Очень понравился формат, видео длительностью час просмотрел за 4). Всё попробовал, потрогал) Спасибо за такой урок, очень понравилось, много примеров и без лишних слов! Жду ещё подобных - подробных видео! П.с. Автор преподаватель от бога! Вы на своём месте! Огромная благодарность за труды! Спасибо что находите время!
Новое узнал что то о ORM , приятно) Спасибо большое за труд, хотя частенько засыпаю под такой монотонный разговор, приходиться бороться часто с собой ) хаха, но все доходчиво и интересно :)
Да, всё верно сказано в конце видео 👍👍👍 Делать подробный разбор каждой команды толку не добавит, нужно объяснить суть - самое главное. "Ученик - это не сосуд, который надо наполнить, а факел, который надо зажечь" Плутарх. Большое Вам спасибо за данный выпуск, то что нужно для начала знакомства с ORM!
Ох и хорошо же, что я перед курсом по джанго потратил недели две на SQL. Осилил видео за два захода, но в целом все понятно. Кстати, connection_queries это же список, поэтому последний запрос SQL можно найти через [-1]
Пишу сейчас проект, что бы попасть на позицию Джуна, только этими роликами и спасаюсь, потому, что чему учат на курсе, это просто песчинка в сравнении даваемого материала тут.
@@selfedu_rus Только что узнал что у вас еще и сайт есть с описанием уроков и кодом. Такой доступный, понятный и грамотный материал просто на вес золота. Спасибо вам за ваш труд.
Спасибо огромное за Ваш труд. Наконец-то нашел по истине грамотный материал. Смотрится и воспринимается все на легке. Возможно в комментариях был вопрос по DRF. Очень бы хотелось, чтоб объяснили это тоже. И ещё вопрос, будет ли печатная копиями этого курса на proprog?
Спасибо огромное, я сам не начинающий python разработчик , но именно в django вы мне подсказали важные аспекты которые я не знал ! Подписка и удачи Вам! Очень признателен!) P.S Если я не ошибаюсь я учился у вас по tenserflow и keras?
Что-то не увидел в этой лекции транзакций. Без них никуда. И у меня в мета-классе Women сортировка ordering = ['-time_create', 'title'], при этом women.objects.values('cat_id').annotate(Count('id')) возвращает {'cat_id': 1, 'id__count': 9}, {'cat_id': 2, 'id__count': 7}] а не как у вас кучу мусорных данных. Возможно из-за версии django. Как всегда лайк за видео.
Классный урок вот только тут действительно нужен целый курсу по django orm, или может есть что-то в тернете годное но я не встречал. Кто знает тыкните меня, или может автор сделает(что было бы мега круто)
44:08 Странно, у меня при группировке записей методом annotate сразу вывод нормальный был, не смотря на то, что в классе Meta был незакомментированный атрибут ordering. Это пофиксили в новых версиях что ли?
Огромное спасибо за великолепный труд! Подскажите, пожалуйста, как действовать, если я хочу создать экземпляр вторичной модели, одним из параметров которого при создании задаётся параметр из первичной модели, связанной через ForeignKey. При этом я хочу задавать этот параметр не через значение внешнего ключа (cat_id), а через наименование самого параметра первичной модели (name). При использовании двойного подчёркивания (по примеру выборки записей по полям связанных моделей) происходит исключение TypeError: got an unexpected keyword argument 'cat__name'.
Если хотите хоть как-то ускорить процесс, то один мой друг посоветовал поставить скорость воспроизведения видео на 1.5х. Он сказал это, только после того как я 3 часа смотрел и практиковался на этом видосе...
А если мне нужно прицепить связанный кверисет модели к объекту модели, то сработает ли такой запрос? qs = Category.objects.all().annotate(women_qs='women') for cat in qs ## title = cat.women.title или так я получу кверисет из повторяющихся категорий?
56:41 Если использовать не ту модель, то как будет выполнен запрос? Имя таблицы заменится на ту, к менеджеру объектов которой идет обращение? Не могу понять, почему запрос на выборку всех записей из таблицы Women, а возвращаются все записи из таблицы Category (без ошибки).
У кого ошибка с _set Она происходит из-за того, что в классе Women в категории(cat) есть параметр related_name При использовании .exists() (прим. c3.women_set.exists()) вместо women_set используйте related_name(если он есть) в классе Woman У меня это c3.get_posts.exists()
И у кого ошибка с Category.objects.filter(women__title__contains='ли') , если есть параметр related_name в классе Women, в категории cat Пишем тогда Category.objects.filter(get_posts__title__contains='ли') и все работает
Есть вопрос. Есть талблица с названиями компани. Есть таблица сайтов. У одной компании есть несколько сатов, в таблице сатов есть связка по ключу с названием компании, а в таблце компании, соответсвенно, связок нет. как обращаяся к таблице с названиями компаний получить все связанные сайты? {% for element in data %}
Люди добрые подскажите, возможна ли такая сортировка, в model A есть класс допустим с тремя полями id, win, lose. и в модели есть функция def get_coef(): return lose/(lose+win). Внимание вопрос =) Как произвести сортировку по результату ответа функции get_coef? tttt = A.objects.all().order_by( ???? ), или тут, что-то свое нужно выдумать?
Ну первое решение в лоб, сделать A.objects.all(), далее для каждой квери выполнить get_coef и на основе его результата - произвести сортировку. Но это очень не оптимальное решение. Но интересно как решили эту задачу (уже 10 месяцев прошло, наверняка уже нашли решение)
Кто нибудь может объяснить почему в cat_id одно подчеркивание, а в cat__slag два? Как я понял cat_id ведь тоже обращается к первичной модели и берет его id.
Добрый день! Может уже был вопрос, но всё же спрошу, чтобы не читать все комментарии: вы вместо __lte пишете __lt, т.е., как видно из видео, можем и так и так писать, ошибки никакой не будет?
Что делать, если у меня в терминале PC не печатаются большинство символов? Вообще не дает печатать символы ( [ ], ~, |, & ) Может кто-то уже стыкался с такой неприятностью.
Почему-то не удаётся импортировать мою модель post (тоже самое что и women у автора) выдаёт ошибку: "ModuleNotFoundError" PS C:\Users\user\PycharmProjects\learning_log> ll_env/scripts/activate (ll_env) PS C:\Users\user\PycharmProjects\learning_log> python manage.py shell Python 3.9.6 (tags/v3.9.6:db3ff76, Jun 28 2021, 15:26:21) [MSC v.1929 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. (InteractiveConsole) >>> from post.models import * Traceback (most recent call last): File "", line 1, in ModuleNotFoundError: No module named 'post' >>> from post.models import * Traceback (most recent call last): File "", line 1, in ModuleNotFoundError: No module named 'post' может кто-нибудь знает почему?
Доброе время суток! Я тут немного запутолся latest() возращает запись добавленную последней. А в видео говорится самую поздную. Women.objects.latest('time_update') может я в запроссе накосячил( Пробовал 'pk' подставлять тоже работает наоборот.(
Да, вы правы, это моя логическая оговорка, там даже по базе видно, что latest() возвращает запись с самой ранней датой (измененная последней), а earlist(), наоборот. Спасибо!
Очень редко, когда приходится опускаться на чистый SQL. Обычно, это какие-то особенные команды + большой опыт использования самого SQL. Если этого нет, то лучше ORM.
Еще один вопрос. Как Category может обращаться к вомен через women__title, если в нем он не прописан как в Вомене cat? И почему именно на women он реагирует?
Потому что women это имя модели, которая связана с category. Посмотрите на запрос sql. Есть другой интересный момент. Что если указать несвязанную модель. Будет выводиться ошибка?
Спасибо за урок! То ли это у меня проблемы, то ли django 4 уже не дает возможности обратится из первичного класса ко вторичному, через annotate() c = Category.objects.annotate(total=Count('women')) Выдает ошибку вот такую - FieldError: Cannot resolve keyword 'women' into field. Choices are: get_post, id, name, slug
Дело было не в django, если переопределить related_name, то его у нужно использовать внутри women. То есть если related_name='get_post', то результат должен быть c = Category.objects.annotate(total=Count('get_post')) Если кто-то столкнется с такой же ошибкой related_name определен внутри файла models.py класса Women, внутри атрибута cat.Если его убрать(related_name) то можно обращаться как у автора видео
У меня вопрос, я начал изучению PostgreSql , и передо мной возник вопрос, а зачем он? ... Ну я просто не понимаю , я делаю интернет магазин, и всю, логику для базы данных, я написал используя django orm , и так получается, что для подключения и работы PostgreSql мне нужно все переписывать? .. Если да, то в чем смысл установки? Orm же и легче и проще, я запутался в этом, а в интернете не нахожу ничего, можете объяснить, в чем разница использования django orm и PostgreSql
Да, вы запутались ) ORM - это надстройка над всеми MySQL, PostgreSQL, SQLite, Orcale и т.п. То есть, создавая приложения с использованием ORM вы можете впоследствии подключать любую БД не меняя саму программу. Поэтому, вас PostgreSQL изучать может сейчас и не нужно. Пишите на ORM, затем подключите в настройках Postgre и все.
@@selfedu_rus то есть, я говорю на понятном мне языке (python) , а ORM выступает в роли переводчика, который объясняет собеседнику(PostgreSql,MySql) , что да как?! И при помощи этого переводчика, я могу болтать с кем угодно? ..... Вроде бы понял Спасибо за объяснение!!
Что быстрее? 1) t = Category.objects.filter(women__title__contains='а').distinct() или 2) t = list(set(Category.objects.filter(women__title__contains='а')))
Я не помню когда последний раз так часто восхищался, смотря ролик на ютубе! Благодарность тем, кто придумал ORM и автору данного курса!
Самый лучший препод по питону и джанго в русском сегменте ютуба!
Одно из лучших обучающих видео, которые я смотрел, шикарно: не растянуто, последовательно, понятно. Спасибо!
Я делал телеграм бота и сам изучал sql запросы. Когда перешёл к изучению Джанго не понимал как обращаться к базе данных и думал, что придеться создавать отельный файл, в котором нужно было бы прописывать все запросы, а это видео полностью ответило на мои вопросы и все стало куда понятнее. Спасибо автору за такие поленые уроки!
Спасибо. А по длительности вроде ничего, и часовой урок нормально зашёл. На одном дыхании и все понятно.
Мной для изучения python и django исользуются около 10 аналогичных каналов. Могу с уверенностью сказать на сегодня, настоящий канал N1 в части разнообразия и качества предостааляемого материала. Буду с нетерпением ждать продолжение по ORM.
Гори в АДУ тот кто поставил дизлайк этому уроку.
Вово!
тут нет дизов :)
ни одного
@@слава-морозов Люди в ютубе подобрели и больше нигде не ставят дизлайки
Можно полный список каналов что вы смотрите, может что для себя подчеркну.
Хочу выразить огромную благодарность автору за проделанный труд, внимание концентрируется всегда в нужном направлении и понимаешь материал. У Сергея определенно есть дар к преподаванию, спасибо огромное за столь великолепный бесплатный материал, это большого стоит!
Мощно, спасибо. Даже интересно , сколько раз я ещё буду, при необходимости, пересматривать отдельные фрагменты этого урока)
Пока на практике все не дойдет до автоматизма)
1:03:18 в точку. Я правда смотрел урок порционно.
Спасибо большое вам за труд!
Урок суперский, особенно когда есть некоторый опыт взаимодействия с ОРМ Джанго и небольшое понимание SQL запросов. Пазл начинает складываться)
как бэкенд-джун, выражаю вам огромную благодарность. Спасибо!
Да, после уймы просмотренного и прочитанного материала мозги стали на место. Все четко, по делу, без воды. Спасибо.
Это невероятно, столько полезной информации, Спасибо огромное!
Спасибо Большое за данные уроки и за весь контент, это относится к каждому видео!
0:00 - Вступление
2:21 - Начало
4:31 - Методы сортировки
6:10 - Метод filter() (список записей по атрибуту)
7:03 - Обработка данных связанных таблиц
9:59 - Запросы с использованием первичной модели (_set)
12:34 - Фильтры полей (lookups)
17:57 - Класс Q: И, ИЛИ, НЕ
21:28 - Быстрое получение записи из таблицы
23:04 - Получение записи по дате
24:44 - Выбор записи относительно текущей (по дате)
26:48 - exists() и count()
29:24 - Обращение к полю первичной модели ч-з атрибут
34:33 - Функции агрегации (некоторые)
38:28 - Выбор записи и конкретных её полей
42:08 - Группировка записей (метод annotate)
47:59 - Класс F
52:13 - Вычисления на стороне СУБД
54:57 - raw SQL запросы
1:00:51 - Передача параметров в запрос
1:02:57 - Конец
Спасибо, добавил!
Я дожил до конца урока, спасибо неугомонный автор))
Фух, я выжил)
Все как всегда, на высшем уровне! Спасибо)
Добрый день. Хочу высказать своё мнение по поводу такого формата.
Очень понравился формат, видео длительностью час просмотрел за 4). Всё попробовал, потрогал) Спасибо за такой урок, очень понравилось, много примеров и без лишних слов! Жду ещё подобных - подробных видео!
П.с. Автор преподаватель от бога! Вы на своём месте! Огромная благодарность за труды! Спасибо что находите время!
Новое узнал что то о ORM , приятно) Спасибо большое за труд, хотя частенько засыпаю под такой монотонный разговор, приходиться бороться часто с собой ) хаха, но все доходчиво и интересно :)
Автору видео отдельный респект, видео сделано максимально красиво. Нашел для себя ответы на многие вопросы. Безмерно благодарен !)
только из комментов узнал что урок оказывается длится час🤪 увлекательно, понятно, и это касается КАЖДОГО урока по любому разделу на этом канале👍
Спасибо тебе, Человек! Супер суперпонятно изложен материал, особонно для тех кто знаком на норм уровне с SQL.
Сергей, спасибо Вам большое за уроки! В связки с курсом ООП материал осознается на 100 %! Успехов в развитии канала!
Отличная квинтэссенция основного, что требуется по орм. Спасибо!
Спасибо большое! Я очень счастлив при изучении ваших курсов.
Огромное спасибо!!!!!!!!! У Вас лучший обучающий канал из множества просмотренных мною!!!
Хороший обзорный урок. Вспомнила несколько проблем, которые не знала как разрешить, а теперь знаю. Спасибо!
Приветствую! Сергей, отличный обзор получился! Спасибо огромное! По количеству охваченных тем и времени обзора оптимально, на мой взгляд. Успехов!
Спасибо за видео, отличная подача материала, поставленная речь, просто шикарное видео! Ну как и все в этом курсе
Да, всё верно сказано в конце видео 👍👍👍
Делать подробный разбор каждой команды толку не добавит, нужно объяснить суть - самое главное.
"Ученик - это не сосуд, который надо наполнить, а факел, который надо зажечь" Плутарх.
Большое Вам спасибо за данный выпуск, то что нужно для начала знакомства с ORM!
очень нравяться ваши уроки, теперь с использованем чатгпт иногда можно даже без документации обойтись
Ох и хорошо же, что я перед курсом по джанго потратил недели две на SQL. Осилил видео за два захода, но в целом все понятно. Кстати, connection_queries это же список, поэтому последний запрос SQL можно найти через [-1]
Спасибо за видео! Очень хорошо воспринимается материал
Cпасибо Сергей, вы лучший!
Пишу сейчас проект, что бы попасть на позицию Джуна, только этими роликами и спасаюсь, потому, что чему учат на курсе, это просто песчинка в сравнении даваемого материала тут.
Удалось найти работу ? и какой проект писали ? Очень интересно, т.к. сам сейчас в такой же ситуации примерно
Это самый лучший ролик который я видел !👍
Просто царь. Спасибо
Прекрасно! Спасибо большое!
Спасибо Вам за урок! Досмотрел до конца, и законспектировал в txt.
Скоро все выложу еще на proproprogs.ru ))
@@selfedu_rus это очень хорошо 👍
@@selfedu_rus Только что узнал что у вас еще и сайт есть с описанием уроков и кодом. Такой доступный, понятный и грамотный материал просто на вес золота. Спасибо вам за ваш труд.
Спасибо огромное за Ваш труд. Наконец-то нашел по истине грамотный материал. Смотрится и воспринимается все на легке. Возможно в комментариях был вопрос по DRF. Очень бы хотелось, чтоб объяснили это тоже. И ещё вопрос, будет ли печатная копиями этого курса на proprog?
Спасибо! Да, как курс будет сформирован, выложу на proproprogs.ru
@@selfedu_rus Благодарю, ожидаю
Спасибо за урок! Конечно все объять не возможно, но хотелось бы про аннотации чуть по подробней.
Очистка командной строки осуществляется нажатием клавиш Ctrl + L
Отличный урок. Я повторял за вами, но чтобы консоль джанго не слишком засорять использовал для просмотра последних запросов connection.queries[-1]
Гигантское Вам спасибо!!!
Дякую.)😁
Spasibo za yrok !!!!!!syper!
Тема не самая простая конечно, но возможности удивляют!
Чай заварил, сажусь смотреть, учиться ))
Я за курс по ORM 😀
Уже есть, см. ссылку на курс на Stepik по Django
Спасибо огромное, я сам не начинающий python разработчик , но именно в django вы мне подсказали важные аспекты которые я не знал !
Подписка и удачи Вам! Очень признателен!)
P.S
Если я не ошибаюсь я учился у вас по tenserflow и keras?
Спасибо.
В дальнейшем посмотрел бы от автора канала что-нибудь по 3d графике. OpenGL или какой-движок.
Чел, который выполняет арифметические операции в запросах: 🗿
Спасибо очень полезно
Что-то не увидел в этой лекции транзакций. Без них никуда.
И у меня в мета-классе Women сортировка ordering = ['-time_create', 'title'], при этом women.objects.values('cat_id').annotate(Count('id')) возвращает
{'cat_id': 1, 'id__count': 9}, {'cat_id': 2, 'id__count': 7}] а не как у вас кучу мусорных данных.
Возможно из-за версии django.
Как всегда лайк за видео.
klass😀
Классный урок вот только тут действительно нужен целый курсу по django orm, или может есть что-то в тернете годное но я не встречал. Кто знает тыкните меня, или может автор сделает(что было бы мега круто)
12:58 используется lookup __gt - он обозначает больше, но не больше или равно. Оговорчка вышла
да, бывают оговорки, спасибо!
Сделайте курс по panda 3d
Было бы уместно заметить про то что Django может работать и с NoSQL, но судя по всему там придеться повозиться
👏👍
44:08 Странно, у меня при группировке записей методом annotate сразу вывод нормальный был, не смотря на то, что в классе Meta был незакомментированный атрибут ordering. Это пофиксили в новых версиях что ли?
Огромное спасибо за великолепный труд!
Подскажите, пожалуйста, как действовать, если я хочу создать экземпляр вторичной модели, одним из параметров которого при создании задаётся параметр из первичной модели, связанной через ForeignKey. При этом я хочу задавать этот параметр не через значение внешнего ключа (cat_id), а через наименование самого параметра первичной модели (name). При использовании двойного подчёркивания (по примеру выборки записей по полям связанных моделей) происходит исключение TypeError: got an unexpected keyword argument 'cat__name'.
Можно ли пропускать видео и переходить к следующему?
Это конечно интересно, но зачем нужен этот Shell?
Мы же на практике добавляем посты через админку, либо из фронтенда. И так же обновляем и удаляем
Здравствуйте, вы знаете почему документация сайт не работает?
А вы будете показывать примеры decorators?
Если хотите хоть как-то ускорить процесс, то один мой друг посоветовал поставить скорость воспроизведения видео на 1.5х. Он сказал это, только после того как я 3 часа смотрел и практиковался на этом видосе...
А если мне нужно прицепить связанный кверисет модели к объекту модели, то сработает ли такой запрос?
qs = Category.objects.all().annotate(women_qs='women')
for cat in qs
## title = cat.women.title
или так я получу кверисет из повторяющихся категорий?
56:41
Если использовать не ту модель, то как будет выполнен запрос? Имя таблицы заменится на ту, к менеджеру объектов которой идет обращение? Не могу понять, почему запрос на выборку всех записей из таблицы Women, а возвращаются все записи из таблицы Category (без ошибки).
Хотелось бы урок по workflow на базе django-fsm
когда спрашваешь друга безопасно ли это
друг: 12:18
👍
Я вот хотел заметить - такое качество материала, а нет 1080p - не порядок
Все ваши уроки классные, спасибо.
Сайт djbook , почему-то не открывается
Все верно, см. англоязычную документацию и новый плейлист по Django - там больше информации.
@@selfedu_rus спасибо вам большое😀.
У кого ошибка с _set
Она происходит из-за того, что в классе Women в категории(cat) есть параметр related_name
При использовании .exists() (прим. c3.women_set.exists()) вместо women_set используйте related_name(если он есть) в классе Woman
У меня это c3.get_posts.exists()
И у кого ошибка с Category.objects.filter(women__title__contains='ли') , если есть параметр related_name в классе Women, в категории cat
Пишем тогда Category.objects.filter(get_posts__title__contains='ли') и все работает
спасибо огромное, ты просто лучший
Когда новый выпуск истории на ночь?
как сделать выборку из двух таблиц не используя raw запросы?
Добрый день!
как при написании цикла фо перейти на следующую строку? На что нажимать на клавиатуре?
у меня просто через Enter срабатывает, в конце, чтобы завершить описание цикла и сработал print, ещё раз нажимал Enter и вывелось, как в уроке
Подскажите почему не могу запустить рансервер загружая любой ваш урок на гитхабе, думал что нужно создать вирт окружение всеравно не запускаеться
Я еще в начале курса не понимал, откуда берется параметр cat_id если в модели он не определен?
Вопрос в ТГ-канал по Django
Есть вопрос. Есть талблица с названиями компани. Есть таблица сайтов. У одной компании есть несколько сатов, в таблице сатов есть связка по ключу с названием компании, а в таблце компании, соответсвенно, связок нет. как обращаяся к таблице с названиями компаний получить все связанные сайты?
{% for element in data %}
{{ element.name }}
{{ element.?????????site }}
{% endfor%}
8:03 - да, перекрашивать что-то в такие цвета теперь модно стало.
Все вопросы к логотипу питона
Люди добрые подскажите, возможна ли такая сортировка, в model A есть класс допустим с тремя полями id, win, lose. и в модели есть функция def get_coef(): return lose/(lose+win).
Внимание вопрос =) Как произвести сортировку по результату ответа функции get_coef?
tttt = A.objects.all().order_by( ???? ), или тут, что-то свое нужно выдумать?
Ну первое решение в лоб, сделать A.objects.all(), далее для каждой квери выполнить get_coef и на основе его результата - произвести сортировку.
Но это очень не оптимальное решение. Но интересно как решили эту задачу (уже 10 месяцев прошло, наверняка уже нашли решение)
Кто нибудь может объяснить почему в cat_id одно подчеркивание, а в cat__slag два? Как я понял cat_id ведь тоже обращается к первичной модели и берет его id.
Потому что в самой таблице к полю cat из модели автоматически добавляется _id.
Добрый день! Может уже был вопрос, но всё же спрошу, чтобы не читать все комментарии: вы вместо __lte пишете __lt, т.е., как видно из видео, можем и так и так писать, ошибки никакой не будет?
это разные lookup: lte
А, ясно! Спасибо Вам большое! Ваши уроки - потрясающие! @@selfedu_rus
как очистить поле терминала в pycharm. Команды cls, clear не срабатывают
у меня clear работает (именно терминал, а не shell django)
Что делать, если у меня в терминале PC не печатаются большинство символов?
Вообще не дает печатать символы ( [ ], ~, |, & ) Может кто-то уже стыкался с такой неприятностью.
Почему-то не удаётся импортировать мою модель post (тоже самое что и women у автора) выдаёт ошибку: "ModuleNotFoundError"
PS C:\Users\user\PycharmProjects\learning_log> ll_env/scripts/activate
(ll_env) PS C:\Users\user\PycharmProjects\learning_log> python manage.py shell
Python 3.9.6 (tags/v3.9.6:db3ff76, Jun 28 2021, 15:26:21) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from post.models import *
Traceback (most recent call last):
File "", line 1, in
ModuleNotFoundError: No module named 'post'
>>> from post.models import *
Traceback (most recent call last):
File "", line 1, in
ModuleNotFoundError: No module named 'post'
может кто-нибудь знает почему?
нужно указывать приложение а не модель
Доброе время суток! Я тут немного запутолся latest() возращает запись добавленную последней. А в видео говорится самую поздную. Women.objects.latest('time_update') может я в запроссе накосячил( Пробовал 'pk' подставлять тоже работает наоборот.(
Да, вы правы, это моя логическая оговорка, там даже по базе видно, что latest() возвращает запись с самой ранней датой (измененная последней), а earlist(), наоборот. Спасибо!
@@selfedu_rus Пожалуйста! Урок очень хороший. Но длинный немного. Смотреть приходится с перерывами.
А в каких ситуациях лучше не использовать ORM, а использовать прямые SQL-запросы? Может быть у Вас были такие ситуации
Очень редко, когда приходится опускаться на чистый SQL. Обычно, это какие-то особенные команды + большой опыт использования самого SQL. Если этого нет, то лучше ORM.
Еще один вопрос. Как Category может обращаться к вомен через women__title, если в нем он не прописан как в Вомене cat? И почему именно на women он реагирует?
Потому что women это имя модели, которая связана с category. Посмотрите на запрос sql. Есть другой интересный момент. Что если указать несвязанную модель. Будет выводиться ошибка?
Уважаемый автор, скажи, если ютубчик в России вдруг скажет «всё», есть ли где-то резерв твоего контента?
Спасибо за урок!
То ли это у меня проблемы, то ли django 4 уже не дает возможности обратится из первичного класса ко вторичному, через annotate()
c = Category.objects.annotate(total=Count('women'))
Выдает ошибку вот такую -
FieldError: Cannot resolve keyword 'women' into field. Choices are: get_post, id, name, slug
Дело было не в django, если переопределить related_name, то его у нужно использовать внутри women.
То есть если related_name='get_post', то результат должен быть
c = Category.objects.annotate(total=Count('get_post'))
Если кто-то столкнется с такой же ошибкой related_name определен внутри файла models.py класса Women, внутри атрибута cat.Если его убрать(related_name) то можно обращаться как у автора видео
@@shinigami_yokoso Spasibo!
У меня вопрос, я начал изучению PostgreSql , и передо мной возник вопрос, а зачем он? ... Ну я просто не понимаю , я делаю интернет магазин, и всю, логику для базы данных, я написал используя django orm , и так получается, что для подключения и работы PostgreSql мне нужно все переписывать? .. Если да, то в чем смысл установки? Orm же и легче и проще, я запутался в этом, а в интернете не нахожу ничего, можете объяснить, в чем разница использования django orm и PostgreSql
Да, вы запутались ) ORM - это надстройка над всеми MySQL, PostgreSQL, SQLite, Orcale и т.п. То есть, создавая приложения с использованием ORM вы можете впоследствии подключать любую БД не меняя саму программу. Поэтому, вас PostgreSQL изучать может сейчас и не нужно. Пишите на ORM, затем подключите в настройках Postgre и все.
@@selfedu_rus то есть, я говорю на понятном мне языке (python) , а ORM выступает в роли переводчика, который объясняет собеседнику(PostgreSql,MySql) , что да как?! И при помощи этого переводчика, я могу болтать с кем угодно? ..... Вроде бы понял
Спасибо за объяснение!!
Что быстрее? 1) t = Category.objects.filter(women__title__contains='а').distinct() или 2) t = list(set(Category.objects.filter(women__title__contains='а')))
По идеи - distinct() работает быстрее. Все что от orm - выполняется на уровне БД.
фух) осилил за 2 дня) законспектировал 3 листа, прописал все в консоли и наверное придется пересмотреть 10ток раз)
А тайм коды можно сделать?
Я понял когда юзать agregate, но не понял когда юзать annotate
Для этого видео нужны таймкоды