introduce all_metadata column, and start adding stuff
This commit is contained in:
parent
85d337a6e4
commit
2c8e836a81
2 changed files with 31 additions and 3 deletions
|
|
@ -5,7 +5,9 @@ class Record(models.Model):
|
||||||
metadata = JSONField(blank=True)
|
metadata = JSONField(blank=True)
|
||||||
title = models.TextField()
|
title = models.TextField()
|
||||||
|
|
||||||
related = models.ManyToManyField('Record', through='Link')
|
@property
|
||||||
|
def all_metadata(self):
|
||||||
|
return self.metadata
|
||||||
|
|
||||||
class Link(models.Model):
|
class Link(models.Model):
|
||||||
link_from = models.ForeignKey(Record, related_name='out_links')
|
link_from = models.ForeignKey(Record, related_name='out_links')
|
||||||
|
|
|
||||||
|
|
@ -9,5 +9,31 @@ from django.test import TestCase
|
||||||
from record.models import Record, Link
|
from record.models import Record, Link
|
||||||
|
|
||||||
class RecordTests(TestCase):
|
class RecordTests(TestCase):
|
||||||
def test_boring(self):
|
def setUp(self):
|
||||||
pass
|
self.q = Record.objects.create(
|
||||||
|
title='Related object',
|
||||||
|
metadata={
|
||||||
|
'ex:another_property': 23,
|
||||||
|
})
|
||||||
|
self.r = Record.objects.create(
|
||||||
|
title='A test record',
|
||||||
|
metadata={
|
||||||
|
'ex:llama_id': 42,
|
||||||
|
})
|
||||||
|
|
||||||
|
def test_metadata_one_record(self):
|
||||||
|
d = self.r.all_metadata
|
||||||
|
self.assertEqual(d['ex:llama_id'], 42)
|
||||||
|
|
||||||
|
def test_metadata_one_record_noinherit(self):
|
||||||
|
# this should work the same way.
|
||||||
|
l = Link.objects.create(
|
||||||
|
link_from=self.r,
|
||||||
|
link_to=self.q,
|
||||||
|
label='ex:related_to',
|
||||||
|
inherit=False)
|
||||||
|
|
||||||
|
d = self.r.all_metadata
|
||||||
|
|
||||||
|
self.assertEqual(d['ex:llama_id'], 42)
|
||||||
|
self.assertNotIn('ex:related_to', d)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue