Django Rest 框架和 CSVRenderer
Posted
技术标签:
【中文标题】Django Rest 框架和 CSVRenderer【英文标题】:Django Rest Framework and CSVRenderer 【发布时间】:2015-04-26 06:05:49 【问题描述】:我想像这样使用djangorestframework-csv:
# serializers.py
class ResourceSerializer(serializers.ModelSerializer):
url = serializers.SerializerMethodField('get_url')
file = serializers.SerializerMethodField('`enter code here`get_file')
extra_file = serializers.SerializerMethodField('get_extra_file')
owner = serializers.SerializerMethodField('get_owner')
def get_url(self, resource):
return resource.get_absolute_url()
def get_file(self, resource):
return resource.get_file()
def get_extra_file(self, resource):
return resource.get_extra_file()
def get_owner(self, resource):
return resource.owner.email if resource.owner else None
class Meta:
model = Resource
fields = (
'name',
'description',
'file',
'extra_file',
'resource_type',
'date_uploaded',
'date_recorded',
'location',
'owner',
'url',
)
# views.py
@api_view(['GET'])
@renderer_classes((CSVRenderer, ))
def resources(request):
"""
Return all public Resources.
"""
resources = Resource.objects.filter(status='Public')
return Response(
ResourceSerializer(
resources,
many=True
).data
)
但是服务器返回:
响应正文 细节 无法满足请求的 Accept 标头 响应代码 406 不可接受 响应标头 "日期": "2015 年 2 月 24 日星期二 14:36:38 GMT", “允许”:“选项,获取”, "服务器": "WSGIServer/0.1 Python/2.7.3", “变化”:“饼干”, “内容类型”:“文本/csv;charset=utf-8”
我很乐意为这个问题提供任何解决方案。
【问题讨论】:
【参考方案1】:现在我决定使用django-queryset-csv 包,它几乎“解决”了我的问题。
【讨论】:
以上是关于Django Rest 框架和 CSVRenderer的主要内容,如果未能解决你的问题,请参考以下文章