【发布时间】:2014-12-07 09:43:59
【问题描述】:
如何从 Django django-rest-framework 的视图有条件地返回 JSON 或 HTML 响应?
-
djangorestframework== 2.3.10 -
我的
settings.py:
REST_FRAMEWORK = {
'PAGINATE_BY': 10,
'DEFAULT_RENDERER_CLASSES': (
'rest_framework.renderers.TemplateHTMLRenderer',
'rest_framework.renderers.JSONRenderer',
)
}
- 在我的
url.py中,我将其添加为最后一行:
urlpatterns = format_suffix_patterns(urlpatterns, allowed=['json', 'html'])
- 我的看法是这样的:
def myview(request, id, format='json'):
if format == 'json' or format is None:
return Response(my_dict, status=status.HTTP_200_OK)
else:
return Response(my_dict, template_name='myhtml.html')
如果我在 url 请求中明确使用 .html 或 .json format_prefix,一切正常。但如果我不指定任何格式,它会给我以下错误。
在 /objects/29 处配置不正确
返回了一个没有设置template_name属性的模板响应 视图或响应
请求方法:GET
请求网址:localhost:8000/objects/29
Django 版本:1.7
异常类型:配置不当
异常值:返回没有template_name的模板响应 在视图或响应上设置的属性
异常位置:D:\WORKSPACE\user...\lib\site-
我也试过了:
urlpatterns = format_suffix_patterns(urlpatterns, allowed=['json', 'html', 'None'])
但它似乎也不起作用。
有人可以帮忙吗?谢谢!
【问题讨论】:
标签: python html json django django-rest-framework