def contribute_to_class(self, cls, name):
super(JSONField, self).contribute_to_class(cls, name)
- dispatcher.connect(self.post_init, signal=signals.post_init, sender=cls)
+ signals.post_init.connect(self.post_init, sender=cls)
def get_json(model_instance):
return dumps(getattr(model_instance, self.attname, None))
return setattr(model_instance, self.attname, loads(json))
setattr(cls, 'set_%s_json' % self.name, set_json)
- def post_init(self, instance=None):
+ def post_init(self, **kwargs):
+ instance = kwargs.get('instance', None)
value = self.value_from_object(instance)
if (value):
setattr(instance, self.attname, loads(value))
from newtagging.models import TagBase
from newtagging import managers
+from catalogue.fields import JSONField
from librarian import html, dcparser
db_index=True, choices=TAG_CATEGORIES)
description = models.TextField(_('description'), blank=True)
main_page = models.BooleanField(_('main page'), default=False, db_index=True, help_text=_('Show tag on main page'))
-
+
user = models.ForeignKey(User, blank=True, null=True)
book_count = models.IntegerField(_('book count'), default=0, blank=False, null=False)
created_at = models.DateTimeField(_('creation date'), auto_now=True)
_short_html = models.TextField(_('short HTML'), editable=False)
parent_number = models.IntegerField(_('parent number'), default=0)
+ extra_info = JSONField(_('extra information'))
# Formats
xml_file = models.FileField(_('XML file'), upload_to=book_upload_path('xml'), blank=True)