Спасибо большое! Самая ценная и глубокая инфа по Джанго во всем интернете! Спасибо за этот труд и за то, что делитесь своим бесценным опытом и знаниями! 🤝🏻
Мне организация оплатила курс на курсере по разработке web приложений. Но после их невнятных материалов я возвращаюсь сюда и усваиваю материал на ура! Так и хочется вас отблагодарить за ваш труд! Вы реально умеете обьяснять
Что-то сложно заходило про "inclusion tags". Пришлось несколько раз пересмотреть/перечитать пока, окончательно уловил суть) Все как всегда, уроки на высшем уровне)
Спасибо за урок! меню наверное лучше хранить в отдельной таблице в бд, но я сделал так @register.inclusion_tag('woomen/menu.html') def menu(): menu = [{'title': "О сайте", 'url_name': 'about'}, {'title': "Добавить статью", 'url_name': 'add_page'}, {'title': "Обратная связь", 'url_name': 'contact'}, {'title': "Войти", 'url_name': 'login'} ] return{'menu': menu}
Автор молодец! Очень классно обьясняет! Спасибо ему огромное! Но может есть кто, кто тоже только начинает Джанго учить и туго соображает даже по нормально поданному материалу? Может у вас есть какие-то лайфхаки, как вам удаётся всё понимать и схватывать на лету? Мб просто вбивать в голову, а там дальше всё станет нормально?
Да, я тоже считаю только практик. После просмотра этого курса переделайте женщин на автомобили, добавьте поля, добавьте категории, добавьте видео, допустим. Потом начните делать какой-нибудь сайт с нуля про ваши интересы или про бизнес ваших знакомых. Если не понятно просматривайте видео по вашим вопросам или смотрите текстовые материалы которые автор указывает под видео. Если интересно обмениваться опытом, дайте знать, обменяемся контактами. Важно не только писать код, но и читать код (в том числе себе подобным), давать рекомендации и презентовать свой код. Если интересно, пишите, соберём для этого группу.
джанго = взрыв мозга! Это передает сюда, а этот возвращает туда, а потом оттуда сюда. За видео спасибо, грамотно, последовательно, подробно! Но с первого просмотра этот джанго понять сложно :(((
Здравствуйте, Сергей! Во-первых, хотел поблагодарить Вас за прекрасную работу и отличное изложение материала! Во-вторых у меня появился вопрос: в наших функциях index и show_categories также дублируется posts в словаре context, что так-же нарушает принцип DRY. Я правильно понимаю, что при помощи пользовательских тегов, можно исключить это дублирование? И еще хотел узнать в каких случаях лучше применять simle_tag, а в каких - inclusion_tag?
Спасибо за урок! "Довольно просто создавать и использовать..." - для меня спорное утверждение, а может я тупой. Вроде все понятно, когда смотришь. Но что бы самому сделать - пришлось пересматривать c паузами. Документация понимания не добавляет. Вроде что-то получилось, но очень хотелось бы узнать на следующем уроке, как это делать ПРАВИЛЬНО. @register.simple_tag() def show_womens(cat_id=None): if not cat_id: return Women.objects.all() else: posts = Women.objects.filter(cat_id=cat_id) if len(posts) == 0: raise Http404() return posts в base.html: {% show_womens cat_id=cat_selected as posts %} Но чем это лучше, чем во VIEW?
В тегах лучше не генерировать исключения 404 - это во вьюхах (представлениях). Также теги, как правило, решают частные и простые задачки отображения какой-либо информации. Опять же для постов, как практика, это хорошо, но вообще они здесь лишние. Честно, говоря, даже пример с рубриками не очень для тегов шаблонов. Далее, я покажу как через классы представлений и миксины убирать это дублирование. Теги же лучше использовать, если другие инструменты не подходят, и они напрашиваются сами собой. Понимание приходит с опытом.
@@selfedu_rus Спасибо за ответ. Долго думал, но так и не понял, зачем в этом случае тэги. Если только для обучения. Мне действительно кажется, что они в данном случае только усложняют задачу и понимание, разбрасывая хорошо-читаемый код по разным файлам.
@@rostislavmalyshev1775 Совершенно верно! Я привел этот пример больше из образовательных целей, просто больше ничего такого показательного не подходило )
Сергей, мне искажаться, что могло бы быть полезно создание группы в каком-нибудь мессенджере для общения зрителей вашего канала. Обмен опытом между себе подобными это достаточно полезно, а может быть и онлайн встречи для презентации и обсуждений кода. Вашего активного участие там не надо (хотя, это было бы очень даже хорошо), участники самоорганизуются, вам только создать и самое главное сообщить зрителям. Надеюсь, отреагируете на предположение. Спасибо!
Добрый день. Спасибо за видео! У меня вопрос: есть html страница, в которой загружаются объекты из БД с помощью inclusion tag. В параметры функции передаётся количество объектов из БД. Можно ли сделать динамический параметр в зависимости от URL страницы, чтобы не делать две функции представления, ссылающихся на один и тот же шаблон, но с разным количеством записей из БД?
Есть вопрос на тему полезности данной возможности django в контексте DRY. Не знаю на сколько верно и правильно делаю сам, но обычно для избежания повторения запроса к базе через ORM, использую функции в базовом классе. В последствии или наследуюсь от этого класса или создаю обьект этого класса при испоьзовании в другом приложении. Поправьте если это не есть правильно.
спасибо за курс, но с самого начала очень много дублирующих самих себя названий, очень сложно воспринимается, ехали категории через категории и категориями погоняли
Я чета не понял... Следование принципам - это конечно хорошо (don't repeat yourself)... Но какбэ чтобы убрать это "нехорошее" повторение надо создать папку, несколько новых файлов, внести изменения в уже существующие файлы и потом... "...И вот смотрите, переходим на сайт, обновляем, ничего не поменялось - все работает..." Поясните пожалуйста про практический смысл этих пользовательских тэгов, он должен быть, этож не для того, чтобы не повторяться...
Непонятно только одно, какой вариант тэгов предпочтительнее простые или включающие, как по мне с простыми все гораздо проще, в разы а включающие создают путаницу и больше кодинга?
Я честно сказать вообще не увидел смысла особого в этих тегах, по крайней мере на таком уровне сложности. Проще пока что передавать всё прямо из views в html страницы..мб на более сложных уровнях такое и может пригодиться
Подскажите, как задается параметр cat_selected? я понимаю, что когда мы выбираем "все категории" он равен 0. Когда выбираем актрисы cat_selected = 1, певицы cat_selected = 2. Но где мы это прописываем, что cat_selected меняется на 1 или 2 или 0?
@@8pin119 Класс! Поздравляю! Вы, кстати, не один такой и я думаю, может сделать видео с кейсами историй успеха? Что думаете? Прислали бы некоторую информацию о себе, куда устроились, с какой зарплатой, например? (Это пока просто вопрос)
@@selfedu_rus здравствуйте, извините что обращаюсь здесь, но я уже весь интернет обошёл и не нашёл как обратиться к конкретному столбцу в бд, пожалуйста, помогите 😭 (выдает ошибку NOT NULL constraint failed: моя_бд.user_id)
Как использование этих шаблонов сказывается на скорости загрузки страниц сайта? Одно дело загрузить всю информацию из одного файла на сервере, другое - с нескольких. Как кэш работает в данном случае? Каждый раз обновляется? Я новичок в этом вопросе, поэтому стало интересно о производительности такого подхода, допустим при обращении к сайту и навигации в нем в условиях низкой скорости интернета на смартфоне. Заранее благодарю за ответ.
Все эти теги кэшируются и проблем с этим нет. Нагрузка на сервер определяется многими параметрами, в том числе частотой обращения к БД. Для такой тонкой отладки можно использовать Debug Toolbar (об этом далее).
подскажите, я правильно поинимаю что тэги это что то вроде {%includes%} в шаблоне Jinja?(вы показывали в серии фласка данную возможность). Т.е. джанго просто переработало эту встроенную возможность jinja?
@@selfedu_rus ну я скорее просто пытаюсь понять смысл тэгов, аналогию провести с фласком, что тэги это аналог included нужен для разделения шаблона html на блоки. Преимуществ в варианте джанго вроде бы нет, синтаксис не привычный, но если работаешь в джанго- нужно пртвыкать) как то так...p.s хорошие художники копируют, гениальные - воруют(с)
такое ощущение, что это делает код только непонятнее и запутаннее, переменная cat_selected передается в базовый шаблон base.htm через функцию index или show_category, внутри этого шаблона эта переменная передается в пользовательский тег, который передает ее внутрь шаблона, который подставляется вместо имени тега в базовом шаблоне.
Еще не понятно, почему в women_tags в строке show_categories(sort=None, cat_selected=0) нужно задавать cat_selected=0 ? Ведь мы же его берем из функции index через base.html. А если не прописать cat_selected=0, то код не работает.
Подскажите, пожалуйста, как сделать на странице все статьи (женщины) в начале каждой категории вставить заголовок? В конце 1ой категории и в начале 2ой категории вывести заголовок Н1 Певицы. Можно ли как то по принципу n+1 (предыдущая категория +1 при переборе), если их будет больше 2 категорий?
Спасибо за уроки, учусь с нуля! В этом примере по тегам возникла проблема в самом начале импорта. from . models import *. Не хочет импортировать, подчёркивает красным. Вроде все правильно делаю))
Подскажите пожалуйста. При открытии главной страницы - вот такая ошибка TemplateSyntaxError at / 'women' is not a registered tag library. Must be one of: admin_list admin_modify admin_urls cache i18n l10n log static tz
Дважды с этой проблемой сталкивался. В первый раз не в той папке каталог templatetags создал, второй раз не дописал одну букву. Вышло templatetag вместо templatetags
Что-то с каждым разом новая фигня вылазит. В третий раз выдало No module named 'typing_extensions'. Пришлось доустанавливать pip install typing-extensions, тогда заработало. Удивляет как делая одно и то же каждый раз появляются произвольные ошибки.
Проблема! Заменил некоторые файлы на файлы из вашего урока 11 - выпадала ошибка в строке, где {% show_categories %}. Удаляю эту строку - пишет, что-то типа, что не может загрузить категории из базы. Заменил файлы целиком - тоже самое. и копии свои не сделал((( на вскидку не подскажите куда рыть?
откатился на 10 урок. заменил все файлы. 11 с начала пойду)) Спасибо за уроки. Проверьте 11 - не понял, почему с ошибкой вылетало у меня На ноуте (другой комп) не смог тоже запустить 11
Когда добавляю в базу данных текст, то текст получается без абзацев и отступов сплошной текст с пробелами между словами и все. Как добавить запись с абзацами, отступами, разными шрифтами и т.д., или хотябы абзацы и отступы?
Хорошие уроки. Жаль не рассказали про тег include, и как с ним работать если есть переменные внутри подключенного шаблона. Я даже в документации такого не нашёл, а оно есть. Может плохо искал.
Да, есть такое. В подключаемом фрагменте через include доступны все переменные, что и в основном шаблоне, если только явно не прописано ограничение only. Также дополнительно можно передавать свои переменные с помощью ключевого слова with.
вот да, на начальном этапе это чуть сбивает, особенно людей которые любят конкретику, не понимаешь на чём уже остановиться чтобы идти дальше пока не забьёшь хехе
Народ, у кого джанго ругается, что тег не зарегистрирован, нужно вписать в файле settings.py в переменную TEMPLATES 'libraries':{'custom_templatetag': 'ИМЯ_ПАКЕТА(women).templatetags.ИМЯ_ПИТОН_ФАЙЛА_В_МОДУЛЕ_ТЕГОВ(women_tags)',}
Чего чего? Куда куда? Можно как-то точнее? А то в строчку, да и с русскими буквами синтаксис не понятен. Да и куда его впихивать конкретно?? Можно пример всей переменной с отступами?
Здравствуйте, а почему именно 2 тега? ведь есть еще 1 - assignment_tag Пишу на пайтон 3.8.2, но когда пишу эту конструкцию, пишет, что AttributeError: 'Library' object has no attribute 'assignment_tag' тег который я хочу записать выглядит так: @register.assignment_tag def get_most_commented_posts(count=5): return Post.objects.annotate(total_comments=Count('comments')).order_by('-total_comments')[:count]
Спасибо большое! Самая ценная и глубокая инфа по Джанго во всем интернете!
Спасибо за этот труд и за то, что делитесь своим бесценным опытом и знаниями! 🤝🏻
Мне организация оплатила курс на курсере по разработке web приложений. Но после их невнятных материалов я возвращаюсь сюда и усваиваю материал на ура! Так и хочется вас отблагодарить за ваш труд! Вы реально умеете обьяснять
Спасибо, Сергей! Как обычно у Вас, все отлично.
Сергей, в очередной раз спасибо за то что учите нас!
Сергей, большое спасибо. Объясняете великолепно. Благодаря вам сэкономил много времени, и усвоил материал. Вы- талантище!
У меня мозг в кашу после этого видео 🙈 продолжу завтра🙈
Отлично как всегда доступно и понятно.
Что-то сложно заходило про "inclusion tags". Пришлось несколько раз пересмотреть/перечитать пока, окончательно уловил суть)
Все как всегда, уроки на высшем уровне)
Спасибо, очень понятное объяснение.
не хватает только собственных фильтров
Как всегда отличный материал. Голос как у Дроздова кстати - В мире животных. Только тут в в мире программирования. Материал реально очень крутой
'women_tags' is not a registered tag library.
Спасибо за урок! Бесподобная подача материала, спасибо еще раз!
Спасибо за урок! меню наверное лучше хранить в отдельной таблице в бд, но я сделал так
@register.inclusion_tag('woomen/menu.html')
def menu():
menu = [{'title': "О сайте", 'url_name': 'about'},
{'title': "Добавить статью", 'url_name': 'add_page'},
{'title': "Обратная связь", 'url_name': 'contact'},
{'title': "Войти", 'url_name': 'login'}
]
return{'menu': menu}
Да, для учебных целей этого достаточно. Вообще, все изменяемые данные, конечно, лучше выносить в БД.
@@selfedu_rus спасибо
@@selfedu_rus Добрый день, я немного не понял почему мы возвращаем словарь, а не просто menu. Можете объяснить?
@@webjoker2005 это словарь атрибутов шаблона, функция обертка ожидает получить словарь. Как вы еще передадите ей именованный атрибут?
Спасибо большое за курс!
Если не работает тег и пишет "is not a registered tag library", то попробуйте перезапустить сервер
если не помогло, то введите эту ошибку в гугл, 1 же ссылка со StackOverFlow вам поможет :)
у меня такая ошибка была, пересмотрел урок и понял что папку templatetags завёл не там где нужно
также это может быть ошибка в названии самой папки
красавчик, очень выручил, а то уже голову сломал что не так!
спс
Автор молодец! Очень классно обьясняет! Спасибо ему огромное! Но может есть кто, кто тоже только начинает Джанго учить и туго соображает даже по нормально поданному материалу? Может у вас есть какие-то лайфхаки, как вам удаётся всё понимать и схватывать на лету? Мб просто вбивать в голову, а там дальше всё станет нормально?
Привет! Тоже новичок в изучении Джанго. Мне помогает запомнить материал и лучше разобраться в нем две вещи - повтор материала и практика))
Да, я тоже считаю только практик. После просмотра этого курса переделайте женщин на автомобили, добавьте поля, добавьте категории, добавьте видео, допустим. Потом начните делать какой-нибудь сайт с нуля про ваши интересы или про бизнес ваших знакомых. Если не понятно просматривайте видео по вашим вопросам или смотрите текстовые материалы которые автор указывает под видео. Если интересно обмениваться опытом, дайте знать, обменяемся контактами. Важно не только писать код, но и читать код (в том числе себе подобным), давать рекомендации и презентовать свой код. Если интересно, пишите, соберём для этого группу.
@@dmitryzagorevskiy507 Дмитрий ! Отличная идея насчёт группы! Я за)
@@dmitryzagorevskiy507 как вас можно найти?
@@РомаГамин Роман, можете найти меня в популярном мессенеджере по моей фамилии. Жду сообщения.
джанго = взрыв мозга! Это передает сюда, а этот возвращает туда, а потом оттуда сюда. За видео спасибо, грамотно, последовательно, подробно! Но с первого просмотра этот джанго понять сложно :(((
вчера три часа убила, а надо было просто посмотреть твое видео!😘
syper yrok!!!!Spasibo vam !!
Это просто ТОП!!! Огромное Вам спасибо!!
Дякую за курс!)
❤🔥
Лайк и комментарий! Спасибо за видео
Коммент продвижения ради! Не заслуженно мало просмотров!
Спасибо за видео!
спасибо)
Здравствуйте, Сергей!
Во-первых, хотел поблагодарить Вас за прекрасную работу и отличное изложение материала!
Во-вторых у меня появился вопрос: в наших функциях index и show_categories также дублируется posts в словаре context, что так-же нарушает принцип DRY. Я правильно понимаю, что при помощи пользовательских тегов, можно исключить это дублирование? И еще хотел узнать в каких случаях лучше применять simle_tag, а в каких - inclusion_tag?
Спасибо! Детали уже не помню, надо будет посмотреть. А по поводу тегов все просто: simple_tag не работает с шаблонами в отличие от inclusion_tag.
Просто сказка а не канал!
Заметил, что на 10:24 нужно в параметры тега передавать не просто строку, а filename = 'путь.html'
Как классно!
Легким движением руки функция превращается... превращается функция... функция превращается... В простой тэг!
Спасибо за урок! "Довольно просто создавать и использовать..." - для меня спорное утверждение, а может я тупой. Вроде все понятно, когда смотришь. Но что бы самому сделать - пришлось пересматривать c паузами. Документация понимания не добавляет. Вроде что-то получилось, но очень хотелось бы узнать на следующем уроке, как это делать ПРАВИЛЬНО.
@register.simple_tag()
def show_womens(cat_id=None):
if not cat_id:
return Women.objects.all()
else:
posts = Women.objects.filter(cat_id=cat_id)
if len(posts) == 0:
raise Http404()
return posts
в base.html:
{% show_womens cat_id=cat_selected as posts %}
Но чем это лучше, чем во VIEW?
В тегах лучше не генерировать исключения 404 - это во вьюхах (представлениях). Также теги, как правило, решают частные и простые задачки отображения какой-либо информации. Опять же для постов, как практика, это хорошо, но вообще они здесь лишние. Честно, говоря, даже пример с рубриками не очень для тегов шаблонов. Далее, я покажу как через классы представлений и миксины убирать это дублирование. Теги же лучше использовать, если другие инструменты не подходят, и они напрашиваются сами собой. Понимание приходит с опытом.
@@selfedu_rus Спасибо за ответ. Долго думал, но так и не понял, зачем в этом случае тэги. Если только для обучения. Мне действительно кажется, что они в данном случае только усложняют задачу и понимание, разбрасывая хорошо-читаемый код по разным файлам.
@@rostislavmalyshev1775 Совершенно верно! Я привел этот пример больше из образовательных целей, просто больше ничего такого показательного не подходило )
Да, только не в base.html, а в index.html
Сергей, мне искажаться, что могло бы быть полезно создание группы в каком-нибудь мессенджере для общения зрителей вашего канала. Обмен опытом между себе подобными это достаточно полезно, а может быть и онлайн встречи для презентации и обсуждений кода. Вашего активного участие там не надо (хотя, это было бы очень даже хорошо), участники самоорганизуются, вам только создать и самое главное сообщить зрителям. Надеюсь, отреагируете на предположение. Спасибо!
спасибо, подумаю
Сергей создал группу в телеграм!
@@igorb.4917 Спасибо! Кажется, я пропустил эту новость. Можно ссылку?
Добрый день. Спасибо за видео! У меня вопрос: есть html страница, в которой загружаются объекты из БД с помощью inclusion tag. В параметры функции передаётся количество объектов из БД. Можно ли сделать динамический параметр в зависимости от URL страницы, чтобы не делать две функции представления, ссылающихся на один и тот же шаблон, но с разным количеством записей из БД?
Есть вопрос на тему полезности данной возможности django в контексте DRY. Не знаю на сколько верно и правильно делаю сам, но обычно для избежания повторения запроса к базе через ORM, использую функции в базовом классе. В последствии или наследуюсь от этого класса или создаю обьект этого класса при испоьзовании в другом приложении. Поправьте если это не есть правильно.
подскажите что значит "функции в базовом классе"? Как это выглядит?
Да я тоже об этом задумывался, когда Сергей каждый раз начинает рассказывать про DRY
спасибо за курс, но с самого начала очень много дублирующих самих себя названий, очень сложно воспринимается, ехали категории через категории и категориями погоняли
Если пишет is not a registered tag library, очистите всю историю браузера(кроме кук) и запустите серв заново
Я чета не понял... Следование принципам - это конечно хорошо (don't repeat yourself)... Но какбэ чтобы убрать это "нехорошее" повторение надо создать папку, несколько новых файлов, внести изменения в уже существующие файлы и потом... "...И вот смотрите, переходим на сайт, обновляем, ничего не поменялось - все работает..." Поясните пожалуйста про практический смысл этих пользовательских тэгов, он должен быть, этож не для того, чтобы не повторяться...
Это не "закон", а "рекомендация". Во всем должна быть умеренность.
Здравствуйте. Не подскажете почему русскоязычная документация перестала работать?
Наверное, что-то случилось
Дайте списать домашку🙄🤣
👏👍
Непонятно только одно, какой вариант тэгов предпочтительнее простые или включающие, как по мне с простыми все гораздо проще, в разы а включающие создают путаницу и больше кодинга?
Я честно сказать вообще не увидел смысла особого в этих тегах, по крайней мере на таком уровне сложности. Проще пока что передавать всё прямо из views в html страницы..мб на более сложных уровнях такое и может пригодиться
Спасибо.
Подскажите, как задается параметр cat_selected? я понимаю, что когда мы выбираем "все категории" он равен 0. Когда выбираем актрисы cat_selected = 1, певицы cat_selected = 2. Но где мы это прописываем, что cat_selected меняется на 1 или 2 или 0?
во views в contex мы передаем параметр 'cat_selected': cat_id, и 'cat_selected': 0
У вас всё идеально, но не могли бы вы записывать видео в темном формате, а то когда переключаешься между окнами можно припадок словить
На новых видео перешел на темную сторону )
@@selfedu_rus спасибо, кстати, с помощью ваших курсов я себе работу нашёл в 15 лет
@@8pin119 Класс! Поздравляю! Вы, кстати, не один такой и я думаю, может сделать видео с кейсами историй успеха? Что думаете? Прислали бы некоторую информацию о себе, куда устроились, с какой зарплатой, например? (Это пока просто вопрос)
@@selfedu_rus хорошая идея, хотя тут скорее больше неудач чем удач :)
@@selfedu_rus здравствуйте, извините что обращаюсь здесь, но я уже весь интернет обошёл и не нашёл как обратиться к конкретному столбцу в бд, пожалуйста, помогите 😭 (выдает ошибку NOT NULL constraint failed: моя_бд.user_id)
Как использование этих шаблонов сказывается на скорости загрузки страниц сайта?
Одно дело загрузить всю информацию из одного файла на сервере, другое - с нескольких. Как кэш работает в данном случае? Каждый раз обновляется?
Я новичок в этом вопросе, поэтому стало интересно о производительности такого подхода, допустим при обращении к сайту и навигации в нем в условиях низкой скорости интернета на смартфоне.
Заранее благодарю за ответ.
Все эти теги кэшируются и проблем с этим нет. Нагрузка на сервер определяется многими параметрами, в том числе частотой обращения к БД. Для такой тонкой отладки можно использовать Debug Toolbar (об этом далее).
подскажите, я правильно поинимаю что тэги это что то вроде {%includes%} в шаблоне Jinja?(вы показывали в серии фласка данную возможность). Т.е. джанго просто переработало эту встроенную возможность jinja?
Это некий стандарт шаблонов, поэтому, никто ни у кого не передирал ))
@@selfedu_rus ну я скорее просто пытаюсь понять смысл тэгов, аналогию провести с фласком, что тэги это аналог included нужен для разделения шаблона html на блоки. Преимуществ в варианте джанго вроде бы нет, синтаксис не привычный, но если работаешь в джанго- нужно пртвыкать) как то так...p.s хорошие художники копируют, гениальные - воруют(с)
создаю тег и консоль мне пишет что тег не регестрируется как исправить это
такое ощущение, что это делает код только непонятнее и запутаннее, переменная cat_selected передается в базовый шаблон base.htm через функцию index или show_category, внутри этого шаблона эта переменная передается в пользовательский тег, который передает ее внутрь шаблона, который подставляется вместо имени тега в базовом шаблоне.
Еще не понятно, почему в women_tags в строке show_categories(sort=None, cat_selected=0) нужно задавать cat_selected=0 ? Ведь мы же его берем из функции index через base.html. А если не прописать cat_selected=0, то код не работает.
Invalid block tag on line 3: 'my_tags'. Did you forget to register or load this tag?
рестартни сервер, ему что бы зарегать теги - нужен рестарт
👍
7:49 можно же просто поменять название функции? не создавая лишних атрибутов
Можешь показать как сделать отзывы?
Поначалу мне писало, что я загружаю не тот пакет тегов, я поменял название папки(изначально я его неправильно написал) и всё заработало.
Подскажите, пожалуйста, как сделать на странице все статьи (женщины) в начале каждой категории вставить заголовок? В конце 1ой категории и в начале 2ой категории вывести заголовок Н1 Певицы. Можно ли как то по принципу n+1 (предыдущая категория +1 при переборе), если их будет больше 2 категорий?
Спасибо за уроки, учусь с нуля! В этом примере по тегам возникла проблема в самом начале импорта. from . models import *. Не хочет импортировать, подчёркивает красным. Вроде все правильно делаю))
Убедитесь, что работаете именно из виртуального окружения. Такая ошибка бывает, если пакет не установлен.
@@selfedu_rus работаю в PyCharm
Зачем лезать в джанго, когда ошибку импорта решить не можете. Зачем просто, зачем вы все это делаете
человек учится, вроде. не думали об этом?
я так понимаю в django теги, а в Flask эту функцию выполняют макросы. Это верно?
да теги в Django похожи на макросы шаблонизатора Jinja
@@selfedu_rus , спасибо.
Подскажите пожалуйста. При открытии главной страницы - вот такая ошибка TemplateSyntaxError at /
'women' is not a registered tag library. Must be one of:
admin_list
admin_modify
admin_urls
cache
i18n
l10n
log
static
tz
Это в телеграм-канал по Django
@@selfedu_rus ok
Дважды с этой проблемой сталкивался. В первый раз не в той папке каталог templatetags создал, второй раз не дописал одну букву. Вышло templatetag вместо templatetags
Что-то с каждым разом новая фигня вылазит. В третий раз выдало No module named 'typing_extensions'.
Пришлось доустанавливать pip install typing-extensions, тогда заработало. Удивляет как делая одно и то же каждый раз появляются произвольные ошибки.
@@ИгорьДавыдовский-ф9ь нюансы у каждого свои, это нормально!
NameError: name 'sort' is not defined
я вот что думаю, видео то без задачек на дом, боюсь что ничего не усвою.
Проблема! Заменил некоторые файлы на файлы из вашего урока 11 - выпадала ошибка в строке, где {% show_categories %}. Удаляю эту строку - пишет, что-то типа, что не может загрузить категории из базы.
Заменил файлы целиком - тоже самое.
и копии свои не сделал(((
на вскидку не подскажите куда рыть?
откатился на 10 урок. заменил все файлы. 11 с начала пойду))
Спасибо за уроки. Проверьте 11 - не понял, почему с ошибкой вылетало у меня
На ноуте (другой комп) не смог тоже запустить 11
Не работает почему то выдает ошибку не может подгрузить тэги
тоже была такая ошибка. Проверьте название файла тэга. У меня не работало, потому что я забыл поставить расширение .py и написал просто _tag
Перед вызовом тэга нужно прописать {% load [название файла с тэгами] %}
кто-нибудь пытался выполнить "домашнее задание"?
Когда добавляю в базу данных текст, то текст получается без абзацев и отступов сплошной текст с пробелами между словами и все. Как добавить запись с абзацами, отступами, разными шрифтами и т.д., или хотябы абзацы и отступы?
Фильтр linebreaks (о нем рассказывалось в 7-м занятии)
@@selfedu_rus спасибо. linebreaksbr помог. текст выглядит получше
Хорошие уроки. Жаль не рассказали про тег include, и как с ним работать если есть переменные внутри подключенного шаблона. Я даже в документации такого не нашёл, а оно есть. Может плохо искал.
Да, есть такое. В подключаемом фрагменте через include доступны все переменные, что и в основном шаблоне, если только явно не прописано ограничение only. Также дополнительно можно передавать свои переменные с помощью ключевого слова with.
блин сколько вариантов для выполнение одной и той же задачи можно голову сломать )
также, как и в реальной жизни )) IT - это свой отдельный мир )
вот да, на начальном этапе это чуть сбивает, особенно людей которые любят конкретику, не понимаешь на чём уже остановиться чтобы идти дальше пока не забьёшь хехе
если не работает, то сервер надо перезапустить
спасибо тебе)) уже весь код пересмотрел, но не мог найти ошибку) а тут банально сервер нужно было перезагрузить
Ниче не понял!
Гарно! Але як на мене на 13:25 10 рядок лишній.Можна писати return без else
Не включающие теги, а встраиваемые, ненужно переводить это буквально.
Народ, у кого джанго ругается, что тег не зарегистрирован, нужно вписать в файле settings.py в переменную TEMPLATES
'libraries':{'custom_templatetag': 'ИМЯ_ПАКЕТА(women).templatetags.ИМЯ_ПИТОН_ФАЙЛА_В_МОДУЛЕ_ТЕГОВ(women_tags)',}
Чего чего? Куда куда? Можно как-то точнее? А то в строчку, да и с русскими буквами синтаксис не понятен.
Да и куда его впихивать конкретно?? Можно пример всей переменной с отступами?
Это вообще глюк джанго , всякую фигню тоже в ситингс творил ,потом отменил и заработало ,пряимо танцы с бубном .
@@ИгорьДавыдовский-ф9ь Я ставил TEMPLATES -> DIRS[] пустым и у меня он нашел библиотеки
@@masterchu941 так Джанго тогда шаблоны перестает видеть
перезапустил сервер и заработало
Здравствуйте, а почему именно 2 тега? ведь есть еще 1 - assignment_tag
Пишу на пайтон 3.8.2, но когда пишу эту конструкцию, пишет, что AttributeError: 'Library' object has no attribute 'assignment_tag'
тег который я хочу записать выглядит так:
@register.assignment_tag
def get_most_commented_posts(count=5):
return Post.objects.annotate(total_comments=Count('comments')).order_by('-total_comments')[:count]
Комент саме про ту помилку яку ти шукаєш:
from ..models import Women
тобто дві крапки перед імпортом
Откуда тебе известно это, ты прорицатель?
Спасибо
Спасибо
Спасибо