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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f5ab7e8aac29a49bcd7af8d57fc01eecba183cdf9798091874ec814d85c29ef
|
|
| MD5 |
76d5673deed93fefc8cd812e9666ccc7
|
|
| BLAKE2b-256 |
978a2a80b60fef822883571b436276d4d6299ea28203696042f19ca40b6c3091
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
admin_dj_helpers-0.1.0.tar.gz -
Subject digest:
8f5ab7e8aac29a49bcd7af8d57fc01eecba183cdf9798091874ec814d85c29ef - Sigstore transparency entry: 279009804
- Sigstore integration time:
-
Permalink:
migelbd/admin-dj-helpers@8a65f4811cc412b18a7ce92c2b0931bc119300a9 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/migelbd
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@8a65f4811cc412b18a7ce92c2b0931bc119300a9 -
Trigger Event:
release
-
Statement type:
File details
Details for the file admin_dj_helpers-0.1.0-py3-none-any.whl.
File metadata
- Download URL: admin_dj_helpers-0.1.0-py3-none-any.whl
- Upload date:
- Size: 826.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24d03cbe4408875c191fdcf144f9158cb8f7aa9d355ca37fc50c81752aa28aa3
|
|
| MD5 |
d4d610566754b3b6fb0ada88d33fb42d
|
|
| BLAKE2b-256 |
75394e36c7e47eaac6d5a36fe0ac3dc32a48282de8ad178bb2e3a6800138ba9b
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
admin_dj_helpers-0.1.0-py3-none-any.whl -
Subject digest:
24d03cbe4408875c191fdcf144f9158cb8f7aa9d355ca37fc50c81752aa28aa3 - Sigstore transparency entry: 279009835
- Sigstore integration time:
-
Permalink:
migelbd/admin-dj-helpers@8a65f4811cc412b18a7ce92c2b0931bc119300a9 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/migelbd
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@8a65f4811cc412b18a7ce92c2b0931bc119300a9 -
Trigger Event:
release
-
Statement type: