docs: def email_recipient(self, subject, content, **kwargs):
          '''
          This method allows for direct emailing of an object's recipient(s)
          (default or manually specified), with both object-specific context
          provided using the get_email_context() method.  This is used, for example,
          to email an individual registrant or the recipient of an individual invoice.
          '''
  
          email_kwargs = {}
  
          for list_arg in [
              'to','cc','bcc',
          ]:
              email_kwargs[list_arg] = kwargs.pop(list_arg,[]) or []
              if isinstance(email_kwargs[list_arg],string_types):
                  email_kwargs[list_arg] = [email_kwargs[list_arg],]
  
          for none_arg in ['attachment_name','attachment']:
              email_kwargs[none_arg] = kwargs.pop(none_arg,None) or None
  
          # Ignore any passed HTML content unless explicitly told to send as HTML
          if kwargs.pop('send_html',False) and kwargs.get('html_message'):
              email_kwargs['html_content'] = render_to_string(
                  'email/html_email_base.html',
                  context={'html_content': kwargs.get('html_message'),'subject': subject}
              )
  
          email_kwargs['from_name'] = kwargs.pop('from_name',getConstant('email__defaultEmailName')) or \
              getConstant('email__defaultEmailName')
          email_kwargs['from_address'] = kwargs.pop('from_name',getConstant('email__defaultEmailFrom')) or \
              getConstant('email__defaultEmailFrom')
  
          # Add the object's default recipients if they are provided
          default_recipients = self.get_default_recipients() or []
          if isinstance(default_recipients,string_types):
              default_recipients = [default_recipients,]
  
          email_kwargs['bcc'] += default_recipients
  
          if not (email_kwargs['bcc'] or email_kwargs['cc'] or email_kwargs['to']):
              raise ValueError(_('Email must have a recipient.'))
  
          # In situations where there are no context
          # variables to be rendered, send a mass email
          has_tags = re.search('\{\{.+\}\}',content)
          if not has_tags:
              t = Template(content)
              rendered_content = t.render(Context(kwargs))
              sendEmail(subject,rendered_content,**email_kwargs)
              return
  
          # Otherwise, get the object-specific email context and email
          # each recipient
          template_context = self.get_email_context() or {}
          template_context.update(kwargs)
  
          # For security reasons, the following tags are removed from the template before parsing:
          # {% extends %}{% load %}{% debug %}{% include %}{% ssi %}
          content = re.sub(
              '\{%\s*((extends)|(load)|(debug)|(include)|(ssi))\s+.*?\s*%\}',
              '',
              content
          )
          t = Template(content)
          rendered_content = t.render(Context(template_context))
  
          if email_kwargs.get('html_content'):
              html_content = re.sub(
                  '\{%\s*((extends)|(load)|(debug)|(include)|(ssi))\s+.*?\s*%\}',
                  '',
                  email_kwargs.get('html_content')
              )
              t = Template(html_content)
              email_kwargs['html_content'] = t.render(Context(template_context))
  
          sendEmail(subject,rendered_content,**email_kwargs)