code: def editable(parsed, context, token):
      
      def parse_field(field):
          field = field.split(".")
          obj = context.get(field.pop(0), None)
          attr = field.pop()
          while field:
              obj = getattr(obj, field.pop(0))
              if callable(obj):
                  # Allows {% editable page.get_content_model.content %}
                  obj = obj()
          return obj, attr
  
      fields = [parse_field(f) for f in token.split_contents()[1:]]
      if fields:
          fields = [f for f in fields if len(f) == 2 and f[0] is fields[0][0]]
      if not parsed.strip():
          try:
              parsed = "".join([str(getattr(*field)) for field in fields])
          except AttributeError:
              pass
  
      if settings.INLINE_EDITING_ENABLED and fields and "request" in context:
          obj = fields[0][0]
          if isinstance(obj, Model) and is_editable(obj, context["request"]):
              field_names = ",".join([f[1] for f in fields])
              context["editable_form"] = get_edit_form(obj, field_names)
              context["original"] = parsed
              t = get_template("includes/editable_form.html")
              return t.render(context)
      return parsed
docs: Add the required HTML to the parsed content for in-line editing,
      such as the icon and edit form if the object is deemed to be
      editable - either it has an ``editable`` method which returns
      ``True``, or the logged in user has change permissions for the
      model.