Для организации поиска на сайте, который основан на Django, и использует базу данных PostgreSQL можно использовать модуль для поиска по этой базе данных, поставляемый с Django. Тем более, что данный поиск обеспечивает полнотекстовый поиск в достаточной мере для небольшого ресурса.
Но для того, чтобы выдача поисковых запросов походила больше на главную страницу, добавим возможность пагинации страниц выдачи, а результаты будут выводиться по 10 штук на одной странице. И для этого также будем использовать модуль django_bootstrap3.
В итоге имеем следующий план действий:
- Добавляем приложение для организации поиска;
- Добавляем url поиска;
- Добавляем форму поиска;
- Описываем шаблон страницы поиска.
- Описываем представление для обработки выдачи поиска;
Статья впервые появилась на EVILEG - Практическое программирование
Взявшись за реализацию комментариев на сайте под Django, я с удивлением обнаружил, что Django не предоставляет никаких модулей для реализации комментариев. Вернее он предоставлял его раньше, это был модуль django.contrib.comments, но в версии 1.7 его объявили как deprecated и предложили либо пилить самостоятельно, либо воспользоваться чем-нибудь вроде Disqus. Хорошо, он вроде тоже поддерживает подсветку синтаксиса кода, но... в статьях одна подсветка, в комментариях другая - это будет некрасиво.
Поэтому будем внедрять собственный велосипед и ловить свои баги.
Для реализации комментариев необходимо:
- Добавить новую модель, назовём её Comment;
- Добавить представление, которое будет обрабатывать добавление комментария;
- Добавить форму для ввода комментария;
- Воспользоваться для организации древовидной структуры подходом Materialized Path;
Статья впервые появилась на EVILEG - Практическое программирование
В файле settings.py в Django мы храним всю необходимую конфигурационную информацию нашего приложения, в состав которой может входить URL сайта или пути к определённым директориям, в которых хранятся специальный файлы и многая другая информация.
И иногда требуется данные переменные использовать в шаблонах, тот же самый URL сайта. Но просто прописав в шаблоне эту константу через {{ SITE_URL }}, воспользоваться данной переменной не получится. Одним из способов решения данной задачи является регистрация шаблонных тегов, которые будут выполнять определённый функционал, например забирать атрибут из файла настроек по его имени.
Статья впервые появилась на EVILEG - Практическое программирование