Collection erializer: make the item a child instead of trying to merge them.
This commit is contained in:
parent
3d6ba634ce
commit
9c129e5731
@ -208,15 +208,11 @@ class CollectionSerializer(serializers.ModelSerializer):
|
||||
accessLevel = serializers.SerializerMethodField('get_access_level_from_context')
|
||||
stoken = serializers.CharField(read_only=True)
|
||||
|
||||
uid = serializers.CharField(source='main_item.uid')
|
||||
encryptionKey = BinaryBase64Field(source='main_item.encryptionKey', required=False, default=None, allow_null=True)
|
||||
etag = serializers.CharField(allow_null=True, write_only=True)
|
||||
version = serializers.IntegerField(min_value=0, source='main_item.version')
|
||||
content = CollectionItemRevisionSerializer(many=False, source='main_item.content')
|
||||
item = CollectionItemSerializer(many=False, source='main_item')
|
||||
|
||||
class Meta:
|
||||
model = models.Collection
|
||||
fields = ('uid', 'version', 'accessLevel', 'encryptionKey', 'collectionKey', 'content', 'stoken', 'etag')
|
||||
fields = ('item', 'accessLevel', 'collectionKey', 'stoken')
|
||||
|
||||
def get_access_level_from_context(self, obj):
|
||||
request = self.context.get('request', None)
|
||||
@ -228,13 +224,9 @@ class CollectionSerializer(serializers.ModelSerializer):
|
||||
"""Function that's called when this serializer creates an item"""
|
||||
collection_key = validated_data.pop('collectionKey')
|
||||
|
||||
etag = validated_data.pop('etag')
|
||||
|
||||
main_item_data = validated_data.pop('main_item')
|
||||
uid = main_item_data.pop('uid')
|
||||
version = main_item_data.pop('version')
|
||||
etag = main_item_data.pop('etag')
|
||||
revision_data = main_item_data.pop('content')
|
||||
encryption_key = main_item_data.pop('encryptionKey')
|
||||
|
||||
instance = self.__class__.Meta.model(**validated_data)
|
||||
|
||||
@ -243,8 +235,7 @@ class CollectionSerializer(serializers.ModelSerializer):
|
||||
raise serializers.ValidationError('etag is not None')
|
||||
|
||||
instance.save()
|
||||
main_item = models.CollectionItem.objects.create(
|
||||
uid=uid, encryptionKey=encryption_key, version=version, collection=instance)
|
||||
main_item = models.CollectionItem.objects.create(**main_item_data, collection=instance)
|
||||
|
||||
instance.main_item = main_item
|
||||
instance.save()
|
||||
|
Loading…
Reference in New Issue
Block a user