Write to the dest buffer

        :param obj f_buf: A file buffer supporting the write and seek
        methods

def render(self, f_buf=None):
        """
        Write to the dest buffer

        :param obj f_buf: A file buffer supporting the write and seek
        methods
        """
        if f_buf is None:
            f_buf = StringIO.StringIO()

        headers = getattr(self, 'headers', ())

        keys = [
            force_encoding(header['label'], self.encoding)
            for header in headers
        ]

        extra_headers = getattr(self, 'extra_headers', ())
        keys.extend([
            force_encoding(header['label'], self.encoding)
            for header in extra_headers
        ])

        outfile = csv.DictWriter(
            f_buf,
            keys,
            extrasaction='ignore',
            delimiter=self.delimiter,
            quotechar=self.quotechar,
            quoting=csv.QUOTE_ALL,
        )
        outfile.writeheader()
        _datas = getattr(self, '_datas', ())
        outfile.writerows(_datas)
        f_buf.seek(0)
        return f_buf