Changeset 6d4e11a
- Timestamp:
- 01/19/10 18:37:06 (3 years ago)
- Branches:
- master, crem, crem2, dev, diadems, forma, generic, instru_search, lam, nlivemulti, production, release/1.4.4, security, social, storage, test, video
- Children:
- dcb9160
- Parents:
- 576e960
- git-author:
- olivier <> (01/19/10 18:37:06)
- git-committer:
- olivier <> (01/19/10 18:37:06)
- Location:
- telemeta
- Files:
-
- 2 edited
-
models/crem.py (modified) (2 diffs)
-
tests/model_tests.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
telemeta/models/crem.py
r576e960 r6d4e11a 36 36 from django.db import models 37 37 import cremquery as query 38 from xml.dom.minidom import getDOMImplementation 38 39 39 40 class ModelCore(models.Model): … … 75 76 return fields_list 76 77 77 def get_dom_element_name(cls): 78 @classmethod 79 def get_dom_name(cls): 78 80 "Convert the class name to a DOM element name" 79 81 clsname = cls.__name__ 80 82 return clsname[0].lower() + clsname[1:] 81 get_dom_element_name = classmethod(get_dom_element_name) 83 84 @staticmethod 85 def get_dom_field_name(field_name): 86 "Convert the class name to a DOM element name" 87 tokens = field_name.split('_') 88 name = tokens[0] 89 for t in tokens[1:]: 90 name += t[0].upper() + t[1:] 91 return name 82 92 83 93 def to_dom(self): 84 94 "Return the DOM representation of this media object" 85 95 impl = getDOMImplementation() 86 root = self.get_dom_ element_name()96 root = self.get_dom_name() 87 97 doc = impl.createDocument(None, root, None) 88 98 top = doc.documentElement 89 top.setAttribute("id", s elf.id)99 top.setAttribute("id", str(self.id)) 90 100 fields = self.to_dict() 91 101 for name, value in fields.iteritems(): 92 element = doc.createElement(name) 102 element = doc.createElement(self.get_dom_field_name(name)) 103 if isinstance(value, models.Model): 104 element.setAttribute('key', str(value.pk)) 93 105 value = unicode(value) 94 106 element.appendChild(doc.createTextNode(value)) -
telemeta/tests/model_tests.py
r576e960 r6d4e11a 255 255 else: 256 256 self.fail("No exception raised") 257 257 258 def testDomForeignKey(self): 259 doc = self.item_4.to_dom() 260 self.assertEquals(doc.getElementsByTagName('collection')[0].getAttribute('key'), str(self.persepolis.id)) 261
Note: See TracChangeset
for help on using the changeset viewer.
