Skip to main content

DRF-интеграция для django-basemodels — готовый сериализатор BaseModel и минимальные утилиты для работы с REST.

Project description

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

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

  • BaseModelSerializerModelSerializer, который:
    • возвращает 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

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

django_basemodels_rest-0.0.1.tar.gz (2.6 kB view details)

Uploaded Source

Built Distribution

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

django_basemodels_rest-0.0.1-py3-none-any.whl (3.2 kB view details)

Uploaded Python 3

File details

Details for the file django_basemodels_rest-0.0.1.tar.gz.

File metadata

  • Download URL: django_basemodels_rest-0.0.1.tar.gz
  • Upload date:
  • Size: 2.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.0 CPython/3.13.0 Windows/11

File hashes

Hashes for django_basemodels_rest-0.0.1.tar.gz
Algorithm Hash digest
SHA256 2862d40ccf5ed5e28209eb13c5b8260ffc9320b3127c7f9e53b831e52726086d
MD5 fc33df9fbef068f011366dcc2bd7267b
BLAKE2b-256 6c5b98fc8bbe84a258b9b3e55c0847eb7ad9ee3186cdadfc747f1fdc8c429f2c

See more details on using hashes here.

File details

Details for the file django_basemodels_rest-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for django_basemodels_rest-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9a10ea09d2ad5f32172e74f030c0aa3170e1b76e87ad42287a2d60011d3bd3a0
MD5 753ba3ceac3f34a18a44ae610a01d06e
BLAKE2b-256 08698737dfee4877a4b960c1c7057603a07568248f9035ebc7f28f6b3bddab35

See more details on using hashes here.

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