Skip to main content

Generic FastAPI + SQLAlchemy admin backend.

Project description

xladmin

xladmin это backend-пакет админки для FastAPI + SQLAlchemy.

Важно:

  • имя пакета в PyPI: xladmin
  • импорт в Python: from xladmin import ...
  • исходники монорепы: Artasov/xladmin

Основной API

  • AdminConfig — корневой декларативный конфиг
  • ModelConfig — конфиг одной ORM-модели
  • FieldConfig — переопределение поведения конкретного поля
  • BulkActionConfig — кастомное действие над несколькими объектами
  • ObjectActionConfig — кастомное действие над одним объектом
  • ModelsBlock — блок моделей для sidebar и overview
  • ListFilterConfig — декларативный фильтр списка модели
  • HttpConfig — контракт интеграции с проектом
  • create_router(...) — фабрика FastAPI-router

Короткие имена считаются основными. Старые Admin* имена и create_admin_router(...) оставлены как alias для совместимости.

Минимальный пример

from xladmin import AdminConfig, HttpConfig, ModelConfig, create_router

from src.core.auth.dependencies import get_current_user
from src.core.db.session import get_db_session
from src.modules.identity.models import UserORM


xladmin_config = AdminConfig(
    models=(
        ModelConfig(model=UserORM),
    ),
)

router = create_router(
    HttpConfig(
        registry=xladmin_config,
        get_db_session_dependency=get_db_session,
        get_current_user_dependency=get_current_user,
        is_allowed=lambda user: bool(user.is_staff),
    ),
)

ModelConfig(model=UserORM) уже достаточно для базовой админки. Библиотека сама достроит:

  • slug
  • title
  • базовые search_fields
  • базовый ordering

Что есть в библиотеке

  • list / detail / create / patch / delete
  • bulk actions и object actions
  • relation choices
  • model descriptions
  • model blocks
  • query_for_list для кастомизации list-query
  • list_filters для фильтров списка в отдельной правой панели на странице модели
  • option-specific filter_handler у select-фильтров для canned query scopes
  • width_px у FieldConfig для ширины колонок списка
  • display_kind="image" у FieldConfig для image-preview в списке и на detail-странице
  • авто-детект JSON полей
  • RU / EN locale
  • delete preview для single delete и bulk delete
  • удаление обязательных дочерних one-to-many связей даже без явного ORM cascade
  • дефолтный порядок полей по порядку объявления в ORM-модели

Совместимость

  • FastAPI >=0.115,<1.0
  • Pydantic >=2.9,<3.0
  • SQLAlchemy >=2.0,<3.0

Документация

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

xladmin-0.1.6.tar.gz (25.7 kB view details)

Uploaded Source

Built Distribution

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

xladmin-0.1.6-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

File details

Details for the file xladmin-0.1.6.tar.gz.

File metadata

  • Download URL: xladmin-0.1.6.tar.gz
  • Upload date:
  • Size: 25.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for xladmin-0.1.6.tar.gz
Algorithm Hash digest
SHA256 01f6d4bb7b44f54ac4cbc6f9ee3e09e84fe1da14cf27105cfcb4869ff1b5d193
MD5 2c16df033a5c17e0069f31e34931929e
BLAKE2b-256 3e9815bc0ee01d2d3617e7824eddcd99d0c8b6cc8f4cbd7dd9cce3c4efe91003

See more details on using hashes here.

Provenance

The following attestation bundles were made for xladmin-0.1.6.tar.gz:

Publisher: backend.yml on Artasov/xladmin

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

File details

Details for the file xladmin-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: xladmin-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 19.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for xladmin-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 24a7f95da8cbfb77a28971570211db08ea27d88339d49611a03666b7d8a8aade
MD5 a94b83aa09a98601a0440fe15aeb8cd6
BLAKE2b-256 d92b8eb1801b31958f2bd224b1852b9378325debb8daea690016439a959d8f25

See more details on using hashes here.

Provenance

The following attestation bundles were made for xladmin-0.1.6-py3-none-any.whl:

Publisher: backend.yml on Artasov/xladmin

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