Add event list API view
This commit is contained in:
30
mayan/apps/rest_api/fields.py
Normal file
30
mayan/apps/rest_api/fields.py
Normal file
@@ -0,0 +1,30 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.utils.module_loading import import_string
|
||||
from django.utils.six import string_types
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from rest_framework import serializers
|
||||
|
||||
|
||||
class DynamicSerializerField(serializers.ReadOnlyField):
|
||||
serializers = {}
|
||||
|
||||
@classmethod
|
||||
def add_serializer(cls, klass, serializer_class):
|
||||
if isinstance(klass, string_types):
|
||||
klass = import_string(klass)
|
||||
|
||||
if isinstance(serializer_class, string_types):
|
||||
serializer_class = import_string(serializer_class)
|
||||
|
||||
cls.serializers[klass] = serializer_class
|
||||
|
||||
def to_representation(self, value):
|
||||
for klass, serializer_class in self.serializers.items():
|
||||
if isinstance(value, klass):
|
||||
return serializer_class(
|
||||
context={'request': self.context['request']}
|
||||
).to_representation(instance=value)
|
||||
|
||||
return _('Unable to find serializer class for: %s') % value
|
||||
Reference in New Issue
Block a user