more work on serializing tags

This commit is contained in:
Sam
2021-01-26 10:58:57 +00:00
parent e42559bfbe
commit 0e5aee73c3
4 changed files with 12 additions and 14 deletions

View File

@@ -47,16 +47,11 @@ class SingleTagSerializerField(serializers.Field):
return value
class CustomTagSerializer(serializers.ModelSerializer):
class CustomTagSerializer(serializers.Serializer):
"""
Differentiate between tags and single-tags
"""
def __init__(self, instance=None, data='', **kwargs):
self.serializer_field_mapping[SingleTagSerializerField] = CharField
self.serializer_field_mapping[TagListSerializerField] = ListField
super(CustomTagSerializer, self).__init__(instance, data, **kwargs)
def create(self, validated_data):
to_be_tagged, validated_data = self._pop_tags(validated_data)
@@ -149,8 +144,9 @@ class CustomTagSerializer(serializers.ModelSerializer):
def _pop_tags(self, validated_data):
to_be_tagged = {}
for key in self.serializer_field_mapping.keys():
field = self.serializer_field_mapping[key]
for key in self.fields.keys():
field = self.fields[key]
if isinstance(field, TagListSerializerField):
if key in validated_data:
to_be_tagged[key] = validated_data.pop(key)