Пример #1
0
 def __init__(self, verbose_name=None, name=None, markup_type=None,
              default_markup_type=None, **kwargs):
     if markup_type and default_markup_type:
         raise ValueError('Cannot specify both markup_type and default_markup_type')
     self.default_markup_type = markup_type or default_markup_type
     markup_types = renderer.list_filters()
     if self.default_markup_type and (not self.default_markup_type in markup_types):
         raise ValueError('Invalid markup type, allowed values: %s' % \
                          ', '.join(renderer.list_filters()))
     self.markup_type_editable = markup_type is None
     super(MarkupField, self).__init__(verbose_name, name, **kwargs)
Пример #2
0
    def contribute_to_class(self, cls, name):
        keys = renderer.list_filters()
        markup_type_field = models.CharField(max_length=30,
            choices=[(k, k) for k in keys], default=self.default_markup_type,
            editable=self.markup_type_editable, blank=self.blank)
        rendered_field = models.TextField(editable=False)
        markup_type_field.creation_counter = self.creation_counter + 1
        rendered_field.creation_counter = self.creation_counter + 2
        cls.add_to_class(_markup_type_field_name(name), markup_type_field)
        cls.add_to_class(_rendered_field_name(name), rendered_field)
        super(MarkupField, self).contribute_to_class(cls, name)

        setattr(cls, self.name, MarkupDescriptor(self))