【问题标题】:how set delimitor for CSVRenderer in django rest_framework_csv?如何在 django rest_framework_csv 中为 CSVRenderer 设置分隔符?
【发布时间】:2015-12-10 13:33:44
【问题描述】:

rest_framework_csv 使用模块 csv。我找不到为 csv 序列化传递分隔符参数的方法。

我使用此处描述的模块 https://github.com/mjumbewu/django-rest-framework-csv 。但我看不到自定义分隔符或设置 quoting=csv.QUOTE_ALL 的方法。

我需要帮助。

【问题讨论】:

    标签: python django csv django-rest-framework


    【解决方案1】:

    未经测试,但digging code 这个片段可以帮助您解决问题:

    from rest_framework_csv.renderers import CSVRenderer
    class SpecialCharSeparator (CSVRenderer):
        def render(self, data, media_type=None, 
                         renderer_context=None, writer_opts=None):
    
            if writer_opts is None:
                writer_opts = {}
    
            new_writer_opts = {'delimiter':'|'}
            new_writer_opts.update( writer_opts )
    
            return (super(SpecialCharSeparator, self)
                   .render(data, media_type, 
                          renderer_context, 
                          writer_opts=new_writer_opts)  #set your delimiter here
                   )
    

    然后使用SpecialCharSeparator作为rederer:

    class MyView (APIView):
        renderer_classes = (r.SpecialCharSeparator, ) + ...
    

    【讨论】:

    • here 是如何做到这一点的确切示例
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-13
    • 2016-11-17
    • 2011-07-16
    • 2016-01-16
    • 1970-01-01
    相关资源
    最近更新 更多