def set(self, instance, value, **kwargs):
     try:
         # Set Description only if richdescription attribute exists ...
         value_orig = instance.Description()
         value_prev = instance.richdescription.getRaw()
         if not value and not value_prev and value_orig:
             # richdescription never set, but description -> prefill
             value = value_orig
         cleaned = strip_html(value)
         instance.setDescription(cleaned)
     except AttributeError:
         # ... but prefill richdescription if it didn't exist until now.
         value = instance.Description()
     return super(RichDescriptionField,
                  self).set(instance, value, **kwargs)
 def richdescription(self, value):
     if not isinstance(RichTextValue, value):
         value = RichTextValue(raw=value)
     self.context.richdescription = value
     self.context.description = strip_html(value.raw)