{"id":19605253,"url":"https://github.com/macket/geekbrains_django","last_synced_at":"2026-03-09T23:36:40.423Z","repository":{"id":41943221,"uuid":"190411023","full_name":"Macket/geekbrains_django","owner":"Macket","description":null,"archived":false,"fork":false,"pushed_at":"2023-02-11T00:59:32.000Z","size":235,"stargazers_count":2,"open_issues_count":6,"forks_count":11,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-26T03:45:01.907Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Macket.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-05T14:31:57.000Z","updated_at":"2022-07-15T02:44:35.000Z","dependencies_parsed_at":"2024-11-11T09:52:25.340Z","dependency_job_id":null,"html_url":"https://github.com/Macket/geekbrains_django","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Macket/geekbrains_django","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Macket%2Fgeekbrains_django","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Macket%2Fgeekbrains_django/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Macket%2Fgeekbrains_django/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Macket%2Fgeekbrains_django/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Macket","download_url":"https://codeload.github.com/Macket/geekbrains_django/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Macket%2Fgeekbrains_django/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30316772,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T20:05:46.299Z","status":"ssl_error","status_checked_at":"2026-03-09T19:57:04.425Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T09:42:05.000Z","updated_at":"2026-03-09T23:36:40.403Z","avatar_url":"https://github.com/Macket.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Geekbrains django\n\n## Оглавление\n\n- [Урок 1. Знакомство с фрэймворком](#Урок-1)\n- [Урок 2. Шаблон + Контекст = html](#Урок-2)\n- [Урок 3. Модели + ORM = данные](#Урок-3)\n- [Урок 4. Аутентификация и регистрация пользователя](#Урок-4)\n- [Урок 5. Пользователь + товар = корзина](#Урок-5)\n- [Урок 6. Корзина + AJAX + декораторы](#Урок-6)\n- [Урок 7. Собственная админка](#Урок-7)\n- [Урок 8. Полезное: встроенная админка Django, ConfigParser, Debug Toolbar](#Урок-8)\n\n## Урок 1\n### Знакомство с фрэймворком\n\n- Создан django-проект\n- Настроена раздача статических файлов из папки static в корне проекта\n- Создано приложение mainapp\n- В geekshop/urls.py добавлены URL для основных страниц\n- В mainapp/views.py созданы функции-обработчики для основных страниц\n- Подготовлены шаблоны для основных страниц\n\n## Урок 2\n### Шаблон + Контекст = html\n\n- Организована динамическая работа со статикой и ссылками\n- Создан базовый шаблон и подшаблон меню\n- Добавлена работа с контекстом в шаблонах\n\n## Урок 3\n### Модели + ORM = данные\n\n- Настроена работа с медиафайлами\n- Созданы модели и произведены миграции\n- Создан суперпользователь\n- Настроена админка для продуктов и категорий\n- Организована работа с моделью продукта в соответствующем контроллере и шаблоне\n- Добавлен файл requirements.txt\n\n## Урок 4\n### Аутентификация и регистрация пользователя\n\n- Создана собственная модель пользователя\n- Настроена аутентификация и вход пользователя\n- Настроена регистрация пользователя\n- Настроен выход пользователя\n- Организован просмотр и редактирование пользователем своего профиля\n\n## Урок 5\n### Пользователь + товар = корзина\n\n- Реализован механиз вывода товара по категориям\n- Реализована динамическая генерация меню по категориям и подсветка выбранной категории\n- Создано приложение корзины\n- Создана модель слота корзины\n- Реализованы механизмы добавления и удаления товара из корзины\n- Выведено количество различных товаров, лежащих в корзине (без учёта их количества)\n\n## Урок 6\n### Корзина + AJAX + декораторы\n\n- К модели слота корзины добавлено поле-метод cost \n- Выведено количество и цена товаров в корзине с помощью шаблонных тегов\n- Реализован механизм просмотра корзины\n- Реализована защита корзины методом @login_required\n- Реализовано редактирование корзины с помщью AJAX\n- Сделано горячее предложение в каталоге\n\n## Урок 7\n### Собственная админка\n\n- Создано приложение adminapp\n- Реализован механизм CRUD для объектов товаров с помощью Class Based View. \n- Доступ к админке ограничен с помощью UserPassesTestMixin\n\n## Урок 8\n### Полезное: встроенная админка Django, ConfigParser, Debug Toolbar\n\n- Данные из settings перенесены в отдельный файл конфигурации\n- Проведена продвинутая настройка встроенной админки Django для продуктов и пользователей\n- Настроена django-debug-toolbar\n- С помощью select_related() оптимизированы запросы в базу данных при расчёте общей цены корзины\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmacket%2Fgeekbrains_django","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmacket%2Fgeekbrains_django","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmacket%2Fgeekbrains_django/lists"}