src/p4l/api/serializers.py
changeset 117 0a4e7d6ebe80
parent 105 62e4429f55cd
child 126 a345f1a67bf1
equal deleted inserted replaced
116:0a6c7c8f8490 117:0a4e7d6ebe80
    77                 into.update(value)
    77                 into.update(value)
    78         else:
    78         else:
    79             if value in (None, ''):
    79             if value in (None, ''):
    80                 into[(self.source or field_name)] = None
    80                 into[(self.source or field_name)] = None
    81             elif self.many and hasattr(value, '__iter__'):
    81             elif self.many and hasattr(value, '__iter__'):
    82                 obj.all().delete()
    82                 if obj is not None:
       
    83                     obj.all().delete()
    83                 nested_items = []
    84                 nested_items = []
    84                 for val in value:
    85                 for val in value:
    85                     kwargs = {
    86                     kwargs = {
    86                         'instance': None,
    87                         'instance': None,
    87                         'data': val,
    88                         'data': val,
   116 class RecordSerializer(P4lModelSerializer):
   117 class RecordSerializer(P4lModelSerializer):
   117     '''
   118     '''
   118     Serializer for record
   119     Serializer for record
   119     '''
   120     '''
   120     language = ThesaurusSerializer(many=False, required=False, slug_field='uri') 
   121     language = ThesaurusSerializer(many=False, required=False, slug_field='uri') 
   121     otherLanguages = ThesaurusSerializer(many=True, slug_field='uri')
   122     otherLanguages = ThesaurusSerializer(many=True, required=False, slug_field='uri')
   122     subjects = ThesaurusSerializer(many=True, slug_field='uri')
   123     subjects = ThesaurusSerializer(many=True, required=False, slug_field='uri')
   123     themes = ThesaurusSerializer(many=True, slug_field='uri')
   124     themes = ThesaurusSerializer(many=True, required=False, slug_field='uri')
   124     countries = ThesaurusSerializer(many=True, slug_field='uri')
   125     countries = ThesaurusSerializer(many=True, required=False, slug_field='uri')
   125     projectNames = ThesaurusSerializer(many=True, slug_field='uri')
   126     projectNames = ThesaurusSerializer(many=True, required=False, slug_field='uri')
   126     subjectCorporateBodies = ThesaurusSerializer(many=True, slug_field='uri') 
   127     subjectCorporateBodies = ThesaurusSerializer(many=True, required=False, slug_field='uri') 
   127     corporateAuthors = ThesaurusSerializer(many=True, slug_field='uri')
   128     corporateAuthors = ThesaurusSerializer(many=True, required=False, slug_field='uri')
   128     audiences = ThesaurusSerializer(many=True, slug_field='uri')
   129     audiences = ThesaurusSerializer(many=True, required=False, slug_field='uri')
   129 
   130 
   130     class Meta:
   131     class Meta:
   131         model = Record
   132         model = Record
   132         depth = 1
   133         depth = 1
   133         read_only_fields = ('identifier', 'uri')
       
   134         fields = ("identifier", "uri", "subjects", "notes", "otherLanguages",
   134         fields = ("identifier", "uri", "subjects", "notes", "otherLanguages",
   135                   "language", "editionStatement", "recordType", "isDocumentPart",
   135                   "language", "editionStatement", "recordType", "isDocumentPart",
   136                   "hidden", "restricted", "themes", "countries", "projectNames", 
   136                   "hidden", "restricted", "themes", "countries", "projectNames", 
   137                   "subjectCorporateBodies", "corporateAuthors", "corporateAuthorLabel", 
   137                   "subjectCorporateBodies", "corporateAuthors", "corporateAuthorLabel", 
   138                   "imprints", "titles", "addedTitles", "issns", "isbns", "documentCodes",
   138                   "imprints", "titles", "addedTitles", "issns", "isbns", "documentCodes",