diff -r 0a6c7c8f8490 -r 0a4e7d6ebe80 src/p4l/api/serializers.py --- a/src/p4l/api/serializers.py Mon Sep 23 00:38:16 2013 +0200 +++ b/src/p4l/api/serializers.py Wed Sep 25 22:14:51 2013 +0200 @@ -79,7 +79,8 @@ if value in (None, ''): into[(self.source or field_name)] = None elif self.many and hasattr(value, '__iter__'): - obj.all().delete() + if obj is not None: + obj.all().delete() nested_items = [] for val in value: kwargs = { @@ -118,19 +119,18 @@ Serializer for record ''' language = ThesaurusSerializer(many=False, required=False, slug_field='uri') - otherLanguages = ThesaurusSerializer(many=True, slug_field='uri') - subjects = ThesaurusSerializer(many=True, slug_field='uri') - themes = ThesaurusSerializer(many=True, slug_field='uri') - countries = ThesaurusSerializer(many=True, slug_field='uri') - projectNames = ThesaurusSerializer(many=True, slug_field='uri') - subjectCorporateBodies = ThesaurusSerializer(many=True, slug_field='uri') - corporateAuthors = ThesaurusSerializer(many=True, slug_field='uri') - audiences = ThesaurusSerializer(many=True, slug_field='uri') + otherLanguages = ThesaurusSerializer(many=True, required=False, slug_field='uri') + subjects = ThesaurusSerializer(many=True, required=False, slug_field='uri') + themes = ThesaurusSerializer(many=True, required=False, slug_field='uri') + countries = ThesaurusSerializer(many=True, required=False, slug_field='uri') + projectNames = ThesaurusSerializer(many=True, required=False, slug_field='uri') + subjectCorporateBodies = ThesaurusSerializer(many=True, required=False, slug_field='uri') + corporateAuthors = ThesaurusSerializer(many=True, required=False, slug_field='uri') + audiences = ThesaurusSerializer(many=True, required=False, slug_field='uri') class Meta: model = Record depth = 1 - read_only_fields = ('identifier', 'uri') fields = ("identifier", "uri", "subjects", "notes", "otherLanguages", "language", "editionStatement", "recordType", "isDocumentPart", "hidden", "restricted", "themes", "countries", "projectNames",