Улучшения и исправления для приложения Main

Улучшения и исправления для приложения MainВ приложении main обнаружены и запланированы к исправлению следующие проблемы и недостатки:
25 Май 2026
13 просмотров
Логотип
Планирование 13 просмотров 2 минуты чтения
Аудиоверсия статьи Слушать текст в один клик
Скорость:

Улучшения и исправления для приложения Main

В приложении main обнаружены и запланированы к исправлению следующие проблемы и недостатки:

  1. Сбой тестирования из-за некорректного файла test.py: Файл содержал одну незавершённую строку test, из-за чего ломался импорт и вся тестовая система Django не запускалась. (Файл уже удалён).

  2. Ошибка фильтрации в админке: Класс FileExistsFilter в admin_files.py возвращал Python-список вместо Django QuerySet, что приводило к сбою при пагинации, сортировке или других операциях.

  3. Отсутствие тестов: В приложении main не было реализовано ни одного юнит-теста.

  4. Ошибки рендеринга JSON-LD: В шаблоне contacts.html разметка breadcrumbs_jsonld рендерится без фильтра |safe, из-за чего двойные кавычки экранируются в ", делая JSON невалидным.

  5. Отсутствие разметки Breadcrumbs JSON-LD на других страницах: Переменная breadcrumbs_jsonld передаётся в контекст PageDetailView и SearchView, но не выводится в соответствующих шаблонах (page_detail.html и search_results.html).


User Review Required

NOTE

Исправление фильтра FileExistsFilter в файловом менеджере админ-панели сделает его более стабильным и предотвратит ошибки базы данных при переходе по страницам отфильтрованного списка. Добавление юнит-тестов позволит покрыть ключевые модели, валидацию форм и работу представлений (включая режим обслуживания сайта).


Proposed Changes

Main App

[MODIFY] admin_files.py

  • Изменить метод queryset в FileExistsFilter, чтобы он возвращал отфильтрованный по ID QuerySet, а не Python-список.

[MODIFY] tests.py

  • Написать тесты для:

    • Модели настроек SiteSettings (синглтон, валидация полей).

    • Модели статических страниц Page (валидация зарезервированных слагов, методы get_previous_page и get_next_page).

    • Формы обратной связи ContactForm (валидация длины имени и сообщения).

    • Представлений IndexView, PageDetailView, ContactView (включая проверку MaintenanceMixin при закрытии сайта).

    • Хелперов модели ManagedFile (размер файлов).

[MODIFY] contacts.html

  • Добавить фильтр |safe для рендеринга breadcrumbs_jsonld внутри тега <script>.

[MODIFY] page_detail.html

  • Добавить вывод разметки breadcrumbs_jsonld в блок extra_head.

[MODIFY] search_results.html

  • Добавить вывод разметки breadcrumbs_jsonld в блок extra_head.


Verification Plan

Automated Tests

  • Запуск тестов Django:

    bash

     

    ..\.venv\Scripts\python.exe manage.py test main

Как вам статья? Отправьте реакцию!

Обсуждение статьи

0

К этой статье пока нет комментариев. Будьте первым, кто выразит свое мнение!

Оставить комментарий

captcha

Похожие материалы

Наши услуги

Мы делаем для вас лучшее

Комплексный подход к цифровому развитию вашего бизнеса — от создания сайтов до автоматизации и технической поддержки

Создание сайтов

Разрабатываем сайты любой сложности: от лендингов до полноценных маркетплейсов.

  • Лендинги и промо-сайты
  • Интернет-магазины
  • Корпоративные сайты
  • Порталы и каталоги
  • Маркетплейсы

Автоматизация бизнеса

Освобождаем ваше время — автоматизируем рутинные задачи и бизнес-процессы.

  • Автоматизация рутины
  • Документооборот
  • Отчётность и аналитика
  • Email и смс рассылки
  • Уведомления и триггеры

Продвижение сайтов

Приводим целевых посетителей и клиентов через эффективные каналы продвижения.

  • SEO-оптимизация
  • Контекстная реклама
  • SMM и социальные сети
  • Таргетированная реклама
  • Медийная реклама

Техническая поддержка

Обеспечиваем стабильность и безопасность ваших ресурсов в режиме 24/7.

  • Поддержка сайтов
  • Интернет-магазины
  • Обновления и патчи
  • Резервное копирование
  • Мониторинг и безопасность
0+
Завершённых проектов
0+
Лет опыта
0%
Довольных клиентов
0/7
Техническая поддержка