Хочешь уверенно проходить IT-интервью?
Мы понимаем, как сложно подготовиться: стресс, алгоритмы, вопросы, от которых голова идёт кругом. Но с AI тренажёром всё гораздо проще.
💡 Почему Т1 тренажёр — это мастхэв?
- Получишь настоящую обратную связь: где затык, что подтянуть и как стать лучше
- Научишься не только решать задачи, но и объяснять своё решение так, чтобы интервьюер сказал: "Вау!".
- Освоишь все этапы собеседования, от вопросов по алгоритмам до диалога о твоих целях.
Зачем листать миллион туториалов? Просто зайди в Т1 тренажёр, потренируйся и уверенно удиви интервьюеров. Мы не обещаем лёгкой прогулки, но обещаем, что будешь готов!
Реклама. ООО «Смарт Гико», ИНН 7743264341. Erid 2VtzqwP8vqy
Пятый этап
Зарегистрированные пользователи сайта ITfinder должны иметь возможность обмениваться сообщениями и оставлять отзывы о проектах. И то, и другое реализовать на Django несложно.
Мессенджер
Начнем работу с создания модели Message
– сохраните этот код в users/models.py:
Подготовьте и примените миграции:
После этого добавьте импорт Message и новый класс в users/form.py:
Шаблоны, которые понадобятся для мессенджера:
Сохраните эти шаблоны в templates/users. Еще мы добавим ссылку на входящие в шаблоне navbar.html – {% url 'inbox' %}
.
Отзывы о проектах
В первой части туториала мы уже частично реализовали функциональность для отзывов о проектах. Теперь нам нужно связать отзывы с пользователями. Для этого мы внесем дополнения в модель Project
:
Дополним класс Review
:
В шаблоне single-projects.html изменим ссылки на авторов отзывов: {% url 'user-profile' review.owner %}
, после чего добавим форму отзыва в projects/forms.py:
Осталось внести небольшие изменения в представление проекта в файле projects/views.py. Добавим import ReviewForm
и код:
Готово, теперь на сайте есть система отзывов:
Шестой этап
На заключительном этапе мы сделаем пагинацию профилей и проектов, а затем реализуем систему поиска.
Пагинация
Сначала сделаем пагинацию для вывода проектов. Создайте файл projects/utils.py, а в файл projects/views.py добавьте импорт:
В конец шаблона projects.html добавьте:
После этого в папку с глобальными шаблонами положите файл pagination.html.
Запустите сервер и проверьте: проекты теперь выводятся постранично.
Таким же образом сделаем пагинацию для постраничного вывода профилей в приложении Users:
- создадим файл utils.py;
- добавим изменения в шаблон profiles.html;
- внесем дополнения в users/views.py.
Готово – теперь профили выводятся по 6 штук на странице:
Поиск
Мы реализуем поиск по проектам и профилям с помощью модуля Q. Сначала добавим импорт from django.db.models import Q
и эту функцию в projects/utils.py:
Использование модуля Q значительно изменит представление для вывода проектов:
Вызов Q в шаблоне projects.html производит {{ search_query }}
. Все готово – поиск по проектам работает:
То же самое сделаем для поиска по профилям. Добавим функцию поиска в users/utils.py:
Изменим представление для вывода профилей в users/views.py:
И добавим {{ search_query }}
в profiles.html. Готово – поиск по профилям работает:
На этом разработка сайта завершена. Код готового проекта можно взять в репозитории ITfinder.
Материалы по теме
- 🐍🚀 Django с нуля. Часть 1: пишем многопользовательский блог для клуба любителей задач Python
- 🐍🚀 Django с нуля. Часть 2: регистрация, авторизация, ограничение доступа
- 🐍🚀 Django с нуля. Часть 3: создание профилей, сжатие изображений, CRUD и пагинация
Комментарии