Skip to main content

Useful utilities for Django Admin with global search support

Project description

Admin Django Helpers

Полезные помощники и утилиты для Django Admin с поддержкой глобального поиска.

🚀 Возможности

  • Глобальный поиск: Легко добавьте функциональность глобального поиска в Django Admin
  • Миксины для моделей: Удобные миксины для расширения функциональности моделей
  • Готовые действия: Полезные действия для админ-панели
  • Контекстные процессоры: Дополнительные контекстные процессоры для шаблонов
  • Шаблонные теги: Набор полезных шаблонных тегов

📦 Установка

pip install admin-dj-helpers

⚙️ Быстрый старт

1. Добавьте приложение в settings.py

INSTALLED_APPS = [
    'admin_dj_helpers', # обязательно первым в перед django.contrib.admin
    'admin_dj_helpers.global_search', # Для добавления глобального поиска
    'admin_dj_helpers.actions', # Для добавления действий
    'django.admin.contrib',
    '...',
]

2. Используйте GlobalSearchMixin в ваших моделях

from django.db import models 
from admin_helpers.global_search.mixin import GlobalSearchMixin

class Article(GlobalSearchMixin, models.Model): 
    title = models.CharField(max_length=200) 
    content = models.TextField() 
    author = models.CharField(max_length=100)
    
    # Настройка глобального поиска
    search_icon = 'fa-solid fa-newspaper'
    search_description = 'Статьи сайта'

    @classmethod
    def get_global_search_fields(cls, query_string: str):
        return [
            'title',
            'content',
            'author'
        ]
    
    def __str__(self):
        return self.title

    

3. Настройте контекстные процессоры

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR / 'templates'],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                'admin_helpers.context_processors.settings', # Обязателен для работы поиска и действий
            ],
        },
    },
]

📚 Подробная документация

GlobalSearchMixin

Миксин для добавления поддержки глобального поиска к вашим моделям.

Настройки класса:

  • search_icon - иконка для отображения в результатах поиска (FontAwesome)
  • search_description - описание модели для поиска
  • search_order_by - поле для сортировки результатов
  • order_in_search - порядок отображения в результатах

Обязательные методы:

@classmethod 
def get_global_search_fields(cls, query_string: str) -> List[str]: 
    """ Возвращает список полей для поиска """ 
    return ['field1', 'field2']

Опциональные методы:

@classmethod 
def get_search_item(cls, obj, request) -> Dict[str, str]: 
    """ Кастомизация элемента в результатах поиска """ 
    return { 
        'type': 'model', 
        'icon': cls.search_icon, 
        'title': str(obj), 
        'description': repr(obj), 
        'url': None, 
        'model_name': cls._meta.verbose_name 
    }

🔧 Требования

  • Python >= 3.9
  • Django >= 3.2

🤝 Поддерживаемые версии Django

  • Django 3.2+
  • Django 4.0+
  • Django 4.1+
  • Django 4.2+
  • Django 5.0+
  • Django 5.1+

📄 Лицензия

MIT License. Подробности в файле LICENSE.

🐛 Сообщить об ошибке

Если вы нашли ошибку или у вас есть предложения по улучшению, пожалуйста, создайте issue в GitHub репозитории.

📊 Статус разработки

Проект находится в стадии активной разработки (Alpha). API может изменяться.


Сделано с ❤️ для Django сообщества

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

admin_dj_helpers-0.1.0.tar.gz (812.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

admin_dj_helpers-0.1.0-py3-none-any.whl (826.5 kB view details)

Uploaded Python 3

File details

Details for the file admin_dj_helpers-0.1.0.tar.gz.

File metadata

  • Download URL: admin_dj_helpers-0.1.0.tar.gz
  • Upload date:
  • Size: 812.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for admin_dj_helpers-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8f5ab7e8aac29a49bcd7af8d57fc01eecba183cdf9798091874ec814d85c29ef
MD5 76d5673deed93fefc8cd812e9666ccc7
BLAKE2b-256 978a2a80b60fef822883571b436276d4d6299ea28203696042f19ca40b6c3091

See more details on using hashes here.

Provenance

The following attestation bundles were made for admin_dj_helpers-0.1.0.tar.gz:

Publisher: python-publish.yml on migelbd/admin-dj-helpers

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file admin_dj_helpers-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for admin_dj_helpers-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 24d03cbe4408875c191fdcf144f9158cb8f7aa9d355ca37fc50c81752aa28aa3
MD5 d4d610566754b3b6fb0ada88d33fb42d
BLAKE2b-256 75394e36c7e47eaac6d5a36fe0ac3dc32a48282de8ad178bb2e3a6800138ba9b

See more details on using hashes here.

Provenance

The following attestation bundles were made for admin_dj_helpers-0.1.0-py3-none-any.whl:

Publisher: python-publish.yml on migelbd/admin-dj-helpers

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page