Skip to main content

django-basemodels-rest

Лёгкая интеграция django-basemodels с Django REST Framework. Предоставляет готовый BaseModelSerializer, который корректно сериализует ключевые поля базовой модели: pk, created_at, updated_at, active_start, active_end, а также дополнительные вычисляемые поля is_active и polymorphic_ctype.

Установка

# в том же окружении, где установлен django-basemodels и DRF
poetry add django-basemodels-rest
poetry add djangorestframework

Требования

  • django-basemodels
  • djangorestframework

Что даёт пакет

  • BaseModelSerializer — ModelSerializer, который:
    • возвращает is_active по свойству is_active_real (учёт временных границ и состояния Celery),
    • возвращает polymorphic_ctype (id типа полиморфной модели),
    • предоставляет базовый набор полей для всех моделей-наследников BaseModel.

Быстрое использование

# serializers.py
from rest_framework import viewsets
from django_basemodels_rest.serializers import BaseModelSerializer
from .models import Article  # Article наследует BaseModel


class ArticleSerializer(BaseModelSerializer):
    class Meta(BaseModelSerializer.Meta):
        model = Article
        fields = BaseModelSerializer.Meta.fields + ("title", "body")
        writable_fields = ("title", "body")
# views.py
from rest_framework import viewsets
from .models import Article
from .serializers import ArticleSerializer


class ArticleViewSet(viewsets.ModelViewSet):
    queryset = Article.objects.all()
    serializer_class = ArticleSerializer

Расширение / Кастомизация

  • Для добавления полей — унаследуйте BaseModelSerializer и добавьте нужные поля в Meta.fields.
  • Для записи указывайте writable_fields в Meta — по умолчанию сериализатор делает все стандартные поля (pk, created_at, updated_at) только для чтения.

Примечания по тестированию

  • При тестах учитывайте, что is_active сериализуется из is_active_real. Для моков патчьте ту функцию, которую использует код сериализатора (в зависимости от того, как реализован импорт в django_basemodels).
  • Подключение пакета в проект не создаёт миграций — используйте миграции ваших моделей-наследников.

Лицензия

MIT

Metadata

Release files for django-basemodels-rest 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-basemodels-rest 0.0.2
File Size Uploaded
django_basemodels_rest-0.0.2.tar.gz 2.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-basemodels-rest 0.0.2
File Interpreter ABI Platform
django_basemodels_rest-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 5.8 kB

Release files / django_basemodels_rest-0.0.2.tar.gz

Download URL django_basemodels_rest-0.0.2.tar.gz
Size 2.6 kB
Tags Source
SHA-256 checksum
How to use checksums
fc2579b7cc990019bcaad4a25567035b528136edbf4143f5773f6649c92919f9
BLAKE2b-256 checksum
How to use checksums
ed3465c304881897d5a7ae40155df31c37f77981d37f6fbd13639825881c0a10
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.0 CPython/3.13.0 Windows/11

Release files / django_basemodels_rest-0.0.2-py3-none-any.whl

Download URL django_basemodels_rest-0.0.2-py3-none-any.whl
Size 3.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1d5bbacbc5f514003dabe3b60b7e87995d418140fc72eb1ce5e34e5697592f9e
BLAKE2b-256 checksum
How to use checksums
8d07b091ec092af8797e59c621e04ba75bde93eec6a58de0f197c235a414a1e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.0 CPython/3.13.0 Windows/11

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page