From 51bd36e96822f6bc8eb25e3e967f2f162c6f870e Mon Sep 17 00:00:00 2001 From: olivier <> Date: Sun, 20 May 2007 15:58:18 +0000 Subject: [PATCH] add to_dom() to models --- telemeta/models.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/telemeta/models.py b/telemeta/models.py index 661628b0..8593862b 100644 --- a/telemeta/models.py +++ b/telemeta/models.py @@ -16,6 +16,7 @@ from django.conf import settings import telemeta from telemeta.core import * from telemeta import dublincore as dc +from xml.dom import getDOMImplementation # Regular (sub) expression for matching/validating media objects IDs media_id_regex = r'[0-9A-Za-z._:%?-]+' @@ -31,6 +32,21 @@ class MediaCore: fields_dict[field.name] = getattr(self, field.name) return fields_dict + def to_dom(self): + "Return the DOM representation of this media object" + impl = getDOMImplementation() + clsname = self.__class__.__name__ + root = clsname[0].lower() + clsname[1:] + doc = impl.createDocument(None, root, None) + top = doc.documentElement + top.setAttribute("pk", self.id) + fields = self.to_dict() + for name, value in fields.iteritems(): + element = doc.createElement(name) + element.appendChild(doc.createTextNode(str(value))) + top.appendChild(element) + return doc + class PhysicalFormat(models.Model): value = models.CharField(maxlength=250) is_enumeration = True -- 2.39.5