def __init__(cls, name, bases, dct): super(PageBase, cls).__init__(name, bases, dct) if cls._deferred: # this is an internal class built for Django's deferred-attribute mechanism; # don't proceed with all this page type registration stuff return # Add page manager PageManager().contribute_to_class(cls, 'objects') if 'template' not in dct: # Define a default template path derived from the app name and model name cls.template = "%s/%s.html" % (cls._meta.app_label, camelcase_to_underscore(name)) if 'ajax_template' not in dct: cls.ajax_template = None cls._clean_subpage_types = None # to be filled in on first call to cls.clean_subpage_types if not dct.get('is_abstract'): # subclasses are only abstract if the subclass itself defines itself so cls.is_abstract = False if not cls.is_abstract: # register this type in the list of page content types PAGE_MODEL_CLASSES.append(cls) if cls.subpage_types: NAVIGABLE_PAGE_MODEL_CLASSES.append(cls) else: LEAF_PAGE_MODEL_CLASSES.append(cls)
def field_type(self): return camelcase_to_underscore(self.bound_field.field.__class__.__name__)
def fieldtype(bound_field): try: return camelcase_to_underscore(bound_field.field.__class__.__name__) except AttributeError: return ""
def field_type(self): return camelcase_to_underscore( self.bound_field.field.__class__.__name__)