Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from rest_framework import serializers
- from rest_framework.relations import MANY_RELATION_KWARGS
- class CustomManyRelatedField(serializers.ManyRelatedField):
- def to_internal_value(self, data):
- if isinstance(data, str) or not hasattr(data, '__iter__'):
- self.fail('not_a_list', input_type=type(data).__name__)
- if not self.allow_empty and len(data) == 0:
- self.fail('empty')
- if data == ['']:
- data = []
- return [
- self.child_relation.to_internal_value(item)
- for item in data
- ]
- class PrimaryKeyM2MField(serializers.PrimaryKeyRelatedField):
- @classmethod
- def many_init(cls, *args, **kwargs):
- list_kwargs = {'child_relation': cls(*args, **kwargs)}
- for key in kwargs:
- if key in MANY_RELATION_KWARGS:
- list_kwargs[key] = kwargs[key]
- return CustomManyRelatedField(**list_kwargs)
- def to_representation(self, value):
- return super().to_representation(value)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement