i hate expensive properties
This commit is contained in:
parent
75b44aa1d9
commit
fc6640807c
2 changed files with 6 additions and 7 deletions
|
|
@ -5,15 +5,14 @@ class Record(models.Model):
|
||||||
metadata = JSONField(blank=True)
|
metadata = JSONField(blank=True)
|
||||||
title = models.TextField()
|
title = models.TextField()
|
||||||
|
|
||||||
@property
|
|
||||||
def all_metadata(self):
|
def all_metadata(self):
|
||||||
result = {}
|
result = {}
|
||||||
|
|
||||||
for l in self.out_links.filter(inherit=True):
|
for l in self.out_links.filter(inherit=True):
|
||||||
if l.prefix is None:
|
if l.prefix is None:
|
||||||
result.update(l.link_to.all_metadata)
|
result.update(l.link_to.all_metadata())
|
||||||
else:
|
else:
|
||||||
for k,v in l.link_to.all_metadata.iteritems():
|
for k,v in l.link_to.all_metadata().iteritems():
|
||||||
result[l.prefix + ':' + k] = v
|
result[l.prefix + ':' + k] = v
|
||||||
|
|
||||||
result.update(self.metadata)
|
result.update(self.metadata)
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ class RecordTests(TestCase):
|
||||||
})
|
})
|
||||||
|
|
||||||
def test_metadata_one_record(self):
|
def test_metadata_one_record(self):
|
||||||
d = self.r.all_metadata
|
d = self.r.all_metadata()
|
||||||
self.assertEqual(d['ex:llama_id'], 42)
|
self.assertEqual(d['ex:llama_id'], 42)
|
||||||
|
|
||||||
def test_metadata_noinherit(self):
|
def test_metadata_noinherit(self):
|
||||||
|
|
@ -33,7 +33,7 @@ class RecordTests(TestCase):
|
||||||
label='ex:related_to',
|
label='ex:related_to',
|
||||||
inherit=False)
|
inherit=False)
|
||||||
|
|
||||||
d = self.r.all_metadata
|
d = self.r.all_metadata()
|
||||||
|
|
||||||
self.assertEqual(d['ex:llama_id'], 42)
|
self.assertEqual(d['ex:llama_id'], 42)
|
||||||
self.assertNotIn('ex:another_property', d)
|
self.assertNotIn('ex:another_property', d)
|
||||||
|
|
@ -46,7 +46,7 @@ class RecordTests(TestCase):
|
||||||
label='ex:related_to',
|
label='ex:related_to',
|
||||||
inherit=True)
|
inherit=True)
|
||||||
|
|
||||||
d = self.r.all_metadata
|
d = self.r.all_metadata()
|
||||||
|
|
||||||
self.assertEqual(d['ex:llama_id'], 42)
|
self.assertEqual(d['ex:llama_id'], 42)
|
||||||
self.assertEqual(d['ex:another_property'], 23)
|
self.assertEqual(d['ex:another_property'], 23)
|
||||||
|
|
@ -62,7 +62,7 @@ class RecordTests(TestCase):
|
||||||
inherit=True,
|
inherit=True,
|
||||||
prefix='p')
|
prefix='p')
|
||||||
|
|
||||||
d = self.r.all_metadata
|
d = self.r.all_metadata()
|
||||||
|
|
||||||
self.assertEqual(d['ex:llama_id'], 42)
|
self.assertEqual(d['ex:llama_id'], 42)
|
||||||
self.assertEqual(d['p:ex:another_property'], 23)
|
self.assertEqual(d['p:ex:another_property'], 23)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue