- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我们使用序列化器来验证进入我们的非基于模型的服务方法的数据。这当然适用于作为 JSON 的 POST,但如果 query_params 中的内容不复杂(不是列表或嵌套),通常也适用于 GET。但是,如果我有这样的事情:
class RequestSerializer(Serializer):
objects = ListField(child=PrimaryKeyRelatedField(queryset=Foo.objects.all()), allow_empty=False)
choice = ChoiceField(choices=my_choices)
在客户端我只是像这样使用 GET:
$.ajax({
type: "GET",
url: '...',
data={
"objects":[1,2,3],
"choice":"mychoice"
...
如果我使用 POST 而不是 GET 并将 contentType 设置为“application/json”,这会起作用,但这不会被 HTTP spec 宽恕.如果能够处理简单的列表用例而无需执行以下操作,那就太好了:
request_serializer = RequestSerializer(data={"objects" :request.query_params.getlist("objects[]")})
是否有一些我遗漏的明显序列化程序技巧告诉序列化程序如何在不手动调用 request.getlist 的情况下获取列表(objects=x&objects=y&objects=z)?其他人为此做了什么,这似乎是一个常见的用例?
编辑:我确实找到了 this post早些时候,但接受的答案是使用 request.getlist,这不是我想要的。
最佳答案
答案是使用 jQuery ajaxSettings
$.ajaxSettings.traditional = true;
如果您在模板中使用 jQuery 并且从我正在阅读的内容来看,它应该可以用于使用 Django 的整个项目,因为它似乎没有像其他语言那样受到同样的限制。
As of jQuery 1.4, the $.param() method serializes deep objects recursively to accommodate modern scripting languages and frameworks such as PHP and Ruby on Rails.
保留此 false 会导致变量作为“objects[]”和处理 HTML 列表的代码 ListField永远不会被调用,因为参数已被替换。
关于json - Django Rest 框架 : getting lists from query_params without request. getlist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33641252/
有人可以帮我解决这个错误吗?因为,代码的结果是 json 格式的成功。但仍然有错误“ undefined variable :query_params”。 我想用这种 json 格式在我的 andro
我只想在给定 query_params 时返回 model_info,否则它应该给出一些错误消息。 我尝试了下面的代码,但是当名称未在查询参数中传递时,它给我 keyerror 。 from rest
我尝试根据 query_params 在 View 集上使用不同的分页类集。 class BlockViewSet(viewsets.ModelViewSet): pagination_cla
我在学习DRF ,并尝试打印 print request.query_params。但是出现错误: print request.query_params AttributeError: 'WS
我正在构建一个简单的 API,并尝试测试 POST 请求。 Post 请求应仅基于一个参数创建一条新记录:标题。 我正在使用manage.py test进行测试,并且我已经设置了客户端: client
我正在使用 DRF 构建一个 RPC 样式的 API,其中每个端点都可以使用 GET 或 POST 方法调用。到目前为止,我已经很好地结合了这些方法: class UpdateUser(APIView
在我的观点之一中,我将附加数据作为 APIView 删除方法中的查询参数传递。我可以使用 request.query_params 获取相同的信息在 View 中。但是当我尝试使用 DRF APIRe
我们使用序列化器来验证进入我们的非基于模型的服务方法的数据。这当然适用于作为 JSON 的 POST,但如果 query_params 中的内容不复杂(不是列表或嵌套),通常也适用于 GET。但是,如
我是一名优秀的程序员,十分优秀!