Coder Social home page Coder Social logo

drf-taggit-serializer's Introduction

Django Taggit Rest Serializer

About

This package is meant for the django-taggit package which is available here

The django-taggit package makes it possible to tag a certain module.

Installation

To install this package you can use the following pip installation:

pip install drf-taggit-serializer

Then, add taggit_serializer to your Settings in INSTALLED_APPS:

    INSTALLED_APS = (
        ...
        'taggit_serializer',
    )

Usage

Because the tags in django-taggit need to be added into a TaggableManager() we cannot use the usual Serializer that we get from Django REST Framework. Because this is trying to save the tags into a list, which will throw an exception.

To accept tags through a REST API call we need to add the following to our Serializer:

from taggit_serializer.serializers import (TagListSerializerField,
                                           TaggitSerializer)


class YourSerializer(TaggitSerializer, serializers.ModelSerializer):

    tags = TagListSerializerField()

    class Meta:
        model = YourModel

And you're done, so now you can add tags to your model

Troubleshooting

Serializer is working but not persistent on DB

Probably, yo've used the intheritance classes in the wrong order. The order on YourSerializer class inheritance classes is imporant, cause you have to override to_internal_value by django serializer mixins. So, use TaggitSerializer as the first class.

class YourSerializer(serializers.ModelSerializer, TaggitSerializer): # Using wrong to_internal_value function
class YourSerializer(TaggitSerializer, serializers.ModelSerializer): # Replace with this

Contribute

Please feel free to create pull requests and issues! Please try to follow conventional commits to make it easier to track what changes you have made.

Credits

This is a fork of https://github.com/glemmaPaul/django-taggit-serializer. Many thanks to @glemmaPaul for managing that repo.

drf-taggit-serializer's People

Contributors

glemmapaul avatar thenewguy avatar oliver-zhou avatar joeweiss avatar andrlik avatar tpeaton avatar esperyong avatar prokaktus avatar

Watchers

James Cloos avatar Julian Early avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.