gpt4 book ai didi

python - 如果 elif 在 View 中则嵌套

转载 作者:太空宇宙 更新时间:2023-11-04 10:34:12 25 4
gpt4 key购买 nike

我有以下代码,它总是返回一个 HttpResponse,即使我更改了 URL 以指定格式 -

http://myserver/cdxcomposites/?format=xml

我的观点哪里做错了?

@csrf_exempt
def cdxcomposites_list(request, format=None):
"""
List all code, or create a new entry.
"""
if request.method == 'GET':
cdxcomposites = CDX_composites.objects.all()
serializer = CDX_compositesSerializer(cdxcomposites, many=True)
if format == 'csv':
return CSVresponse(serializer.data)

elif format == 'json':
return JSONresponse(serializer.data)

elif format == 'xml':
return XMLresponse(serializer.data)

elif format == 'yaml':
return YAMLresponse(serializer.data)

else:
return HttpResponse(serializer.data)

我没有包括 POST,因为我还没有做到这一点。

编辑 - 如果我用我的 google-fu 正确阅读问题是我的 if 和我所有的 elif 语句都没有验证所以我认为代码是正确的,我只是错过了如何获得值到 View 中。这是我的 urls.py

from django.conf.urls import patterns, url
from rest_framework.urlpatterns import format_suffix_patterns

urlpatterns = patterns('rds.views',
url(r'^cdxcomposites/$', 'cdxcomposites_list'),
url(r'^cdxcomposites/(?P<pk>[0-9]+)/$', 'cdxcomposites_detail'),
)

urlpatterns = format_suffix_patterns(urlpatterns, allowed=['json', 'xml', 'yaml', 'csv'])

回复评论似乎格式没有解析。我将最后一行更改为

return HttpResponse(format)

它给出None

最佳答案

查询参数永远不会通过 View 的参数列表传入。这是针对在 urls.py 中提取的 URL 部分。

您需要在 request.GET 中查找 URL 中的查询参数:

format = request.GET.get("format", None)
if format == 'csv':
return CSVresponse(serializer.data)
#etc...

关于python - 如果 elif 在 View 中则嵌套,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24479574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com