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-basemodelsdjangorestframework
Что даёт пакет
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)
| File | Size | Uploaded | |
|---|---|---|---|
| django_basemodels_rest-0.0.2.tar.gz | 2.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|