{ "info": { "author": "Allisson Azevedo", "author_email": "allisson@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Internet :: WWW/HTTP", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "django-rest-framework-serializer-mixins\n=======================================\n\n.. image:: https://travis-ci.org/allisson/django-rest-framework-serializer-mixins.svg?branch=master\n :target: https://travis-ci.org/allisson/django-rest-framework-serializer-mixins\n\n.. image:: https://codecov.io/gh/allisson/django-rest-framework-serializer-mixins/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/allisson/django-rest-framework-serializer-mixins\n\n.. image:: https://img.shields.io/pypi/v/djangorestframework-serializer-mixins.svg\n :target: https://pypi.python.org/pypi/djangorestframework-serializer-mixins\n\n.. image:: https://img.shields.io/github/license/allisson/djangorestframework-serializer-mixins.svg\n :target: https://pypi.python.org/pypi/djangorestframework-serializer-mixins\n\n.. image:: https://img.shields.io/pypi/pyversions/djangorestframework-serializer-mixins.svg\n :target: https://pypi.python.org/pypi/djangorestframework-serializer-mixins\n\n\nMixins for Django Rest Framework Serializer\n\nHow to install\n--------------\n\n.. code:: shell\n\n pip install djangorestframework-serializer-mixins\n\nHow to use\n----------\n\nAssume you have a Post model:\n\n.. code:: python\n\n # testapp/models.py\n from django.conf import settings\n from django.db import models\n\n\n class Post(models.Model):\n user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='posts')\n title = models.CharField(max_length=128)\n body = models.TextField()\n created_at = models.DateTimeField(auto_now_add=True)\n updated_at = models.DateTimeField(auto_now=True)\n\n def __str__(self):\n return self.title\n\n class Meta:\n ordering = ['-created_at']\n\n\nWrite DynamicPostSerializer with DynamicFieldsMixin:\n\n.. code:: python\n\n # testapp/serializers.py\n from rest_framework import serializers\n\n from rest_framework_serializer_mixins import DynamicFieldsMixin\n\n from .models import Post\n\n\n class DynamicPostSerializer(DynamicFieldsMixin, serializers.ModelSerializer):\n class Meta:\n model = Post\n fields = (\n 'body',\n 'created_at',\n 'id',\n 'title',\n 'updated_at',\n 'user',\n )\n read_only_fields = (\n 'id',\n 'user',\n )\n\nNow, you can define fields and read_only_field like this:\n\n.. code:: python\n\n >>> from django.contrib.auth.models import User\n >>> from testapp.models import Post\n >>> from testapp.serializers import DynamicPostSerializer\n >>> user = User.objects.create_user('user', 'user@email.com', '123456')\n >>> post = Post.objects.create(user=user, title='My Title', body='My Body')\n >>> data = DynamicPostSerializer(post) # return fields and read_only_fields from Meta\n >>> serializer = DynamicPostSerializer(post) # return fields and read_only_fields from Meta\n >>> serializer.data\n {'body': 'My Body', 'created_at': '2018-02-14T14:15:29.772209Z', 'id': 1, 'title': 'My Title', 'updated_at': '2018-02-14T14:15:29.772312Z', 'user': 1}\n >>> serializer = DynamicPostSerializer(post, fields=('title', 'body')) # return only title and body fields\n >>> serializer.data\n {'body': 'My Body', 'title': 'My Title'}\n >>> serializer = DynamicPostSerializer(post, read_only_fields=('title', 'body'), data={'title': 'New Title', 'body': 'New Body'}) # set title and body as read_only_fields\n >>> serializer.is_valid()\n True\n >>> serializer.save()\n \n >>> serializer.data\n {'body': 'My Body', 'created_at': '2018-02-14T14:15:29.772209Z', 'id': 1, 'title': 'My Title', 'updated_at': '2018-02-14T14:19:14.838001Z', 'user': 1} # title and body don't change\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/allisson/django-rest-framework-serializer-mixins", "keywords": "djangorestframework rest", "license": "", "maintainer": "", "maintainer_email": "", "name": "djangorestframework-serializer-mixins", "package_url": "https://pypi.org/project/djangorestframework-serializer-mixins/", "platform": "", "project_url": "https://pypi.org/project/djangorestframework-serializer-mixins/", "project_urls": { "Homepage": "https://github.com/allisson/django-rest-framework-serializer-mixins" }, "release_url": "https://pypi.org/project/djangorestframework-serializer-mixins/0.1.0/", "requires_dist": [ "djangorestframework (>=3.5.4)" ], "requires_python": "", "summary": "Mixins for Django Rest Framework Serializer", "version": "0.1.0" }, "last_serial": 3581532, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "83b849adc6c01bdffc5c44c29c29b981", "sha256": "b12e4bd547ee6c8514f9a50c96c59a4a77aa223f78068f2db7dc704ea234f94a" }, "downloads": -1, "filename": "djangorestframework_serializer_mixins-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "83b849adc6c01bdffc5c44c29c29b981", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5511, "upload_time": "2018-02-14T14:26:48", "url": "https://files.pythonhosted.org/packages/b3/88/047ac2ed9bcaeed1a24c545421d1414314573752be0daa867ec962046796/djangorestframework_serializer_mixins-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "92026d041924168a9220ca2b18a97d36", "sha256": "d70d4609c1b68302f26ac3aff65c5b9486ac759753acb0f4fa0af35e29bc4ddd" }, "downloads": -1, "filename": "djangorestframework-serializer-mixins-0.1.0.tar.gz", "has_sig": false, "md5_digest": "92026d041924168a9220ca2b18a97d36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4152, "upload_time": "2018-02-14T14:26:49", "url": "https://files.pythonhosted.org/packages/3d/ab/7578d5ce4f0459d83b762f67855179b5ce12bdf4f78597ddcc19a8e8e3cf/djangorestframework-serializer-mixins-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "83b849adc6c01bdffc5c44c29c29b981", "sha256": "b12e4bd547ee6c8514f9a50c96c59a4a77aa223f78068f2db7dc704ea234f94a" }, "downloads": -1, "filename": "djangorestframework_serializer_mixins-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "83b849adc6c01bdffc5c44c29c29b981", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5511, "upload_time": "2018-02-14T14:26:48", "url": "https://files.pythonhosted.org/packages/b3/88/047ac2ed9bcaeed1a24c545421d1414314573752be0daa867ec962046796/djangorestframework_serializer_mixins-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "92026d041924168a9220ca2b18a97d36", "sha256": "d70d4609c1b68302f26ac3aff65c5b9486ac759753acb0f4fa0af35e29bc4ddd" }, "downloads": -1, "filename": "djangorestframework-serializer-mixins-0.1.0.tar.gz", "has_sig": false, "md5_digest": "92026d041924168a9220ca2b18a97d36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4152, "upload_time": "2018-02-14T14:26:49", "url": "https://files.pythonhosted.org/packages/3d/ab/7578d5ce4f0459d83b762f67855179b5ce12bdf4f78597ddcc19a8e8e3cf/djangorestframework-serializer-mixins-0.1.0.tar.gz" } ] }