问题标签 [django-rest-viewsets]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - ValueError:无法分配“u'http://localhost:8000/players/1/'”:“Game.referee”必须是“用户”实例
我明白这个错误在说什么,只是不明白如何在请求中传递用户实例(邮递员)。
以下是我的模型。
序列化器。
并且视图集是
直到这里"u'http://localhost:8000/players/1/'"
工作正常。
只要我跟着。
相同的 API 调用引发以下错误
ValueError: Cannot assign "u'http://localhost:8000/players/1/'": "Game.referee" must be a "User" instance.
我真的应该从 url 创建用户实例还是有更优雅的方式来传递用户实例?
python - Django REST 框架没有选择 API 端点
我正在尝试重构 API 以使用Django REST 框架。我已将其更改urls.py
为以下内容(仍在 Django 1.11 中):
但是,如果我python manage.py runserver
和 go to localhost:8000/api/v1.0/feedback/
,我会收到 404 错误响应:
似乎r'^api/v1\.0/feedback/
端点没有被拾取,即使它作为参数传递给router.register()
. 任何想法为什么这不起作用?
django - 继承模型的序列化器
我声明了以下模型:
和序列化器:
乍一看,一切似乎都很好,它是在可浏览的 api 中正确生成的。尽管如此,当我想更新这两个字段时,只会更新“活动”。
当我做回报时,我会收到正确的回应:
但是名称字段根本没有更新。我更进一步,尝试在序列化程序中实现自定义更新方法:
之后,在一个 put 响应中,我只收到活动字段?:
在控制台上更令人惊讶:
我完全迷失了 :) 为什么序列化程序将明确提供的 Child 模型视为 Person ?如何强制 ChildSerializer 在 Child 模型上工作?
提前谢谢你
python - html页面的DRF json 404 insetad
我想用 DRF 响应替换默认的 django 404(以及将来的其他),尽可能简单,只是返回(标准 DRF 响应):
所以我把这段代码放在我的 url.py 文件中。
当我设置 Debug 标志(在设置的 Ture 中我得到 500 时,将其设置为 False 404 但在 html 表单中。
我在这里阅读过文档:http: //www.django-rest-framework.org/api-guide/exceptions/但老实说,我不知道如何将其变为现实。
这似乎很容易,但不知何故我未能实现这一点(上面的代码来自其他 SO 线程)。
先感谢您
django - Django Rest 框架中的发布请求处理
我正在使用 Django Rest Framework,目前从我们使用 Get 请求的后端提取一些数据,但由于 URL 限制很高,我们计划实现一个 Post 请求。为此,首先必须使后端 Django Rest API 可用于服务发布请求。
我是 Django 新手,在代码中找不到帖子或获取方法,我只能说我们正在使用视图集,我尝试使用“@detail_route(methods=['post'])”,但这没有不工作,我在这里做错了什么?
python - Django Rest Framework:动态更新/创建多个对象,无需提供 pk
我刚刚偶然发现了 Django Rest Framework 遇到的最棘手的问题。让我先给你我的模型,然后解释:
这些模型描述了一个简单的邮票卡模型。一张邮票卡被认为是满的,当它通过外键关联的邮票与它的邮票卡格式的限制数量一样多时。我需要编写执行以下操作的视图:
- 该视图包含一个包含它们的 uuid 的标记列表(见下文)。
- 然后它需要为每个给定的邮票找到正确的邮票卡格式。
接下来,它需要检查请求用户是否有一张带有相应 stampcardformat 的邮票卡。
a)如果有,则需要检查印章卡是否已满。
i)如果已满,则需要新建给定格式的stampcard,并将stamps stampcard-foreignkey更新为创建的stampcard。
ii)如果未满,则需要将 stamps stampcard-foreignkey 更新为找到的 stampcard
b)如果用户没有给定stampcardformat 的stampcard,则需要创建一个新的stampcard,并将stamps stampcard-foreignkey 更新为创建的stampcard。
这是邮票的请求正文列表:
基于类的视图似乎不支持这种行为。我尝试修改基于类的视图,但无济于事。除了很多点之外,我还失败了,因为视图抛出了错误:
编辑
对于其他上下文:我需要 url 没有 pk、slug 或任何东西。所以网址应该是这样的:
并对其进行放置(或任何具有主体和工作的请求)。我写的路线是:
编辑:巨大的更新。所以我设法拼凑出一个可行的观点。首先,我像这样更新了邮票卡模型(我确实添加了一个新字段“完成”来跟踪它是否已满):
然后我写了这样的视图:
但是这段代码有两个问题:
- 我的直觉告诉我,在模型实例(例如)上调用 save() 的部分
stamp.save()
对于 api 来说是非常不安全的。我无法让它首先序列化数据。我的问题是:这种观点可以这样吗?或者我可以改进什么吗?例如,它不使用基于泛型类,但我不知道如何在这里使用它们...... - 如果用这种方法填满,我也很想退回邮票卡。但我也想排除所有不相关的邮票卡,这就是我打电话的原因
.exclude(done=True)
。不幸的是,一张被填满的邮票卡已经完成了=True!如何将在此过程中填写的印章卡添加到返回值?
django-models - 在Django rest框架中过滤外键下拉列表中的结果
我有 3 个模型。用户、流程、流程映射。流程模型有一个created_by 字段,它是用户模型的外键。流程映射模型具有流程名称字段,它是流程表的外键。
我的代码如下。
模型.py
视图.py
序列化程序.py
当用户创建一个进程然后去映射该进程时,外键列出了进程表中存在的所有进程。相反,我只需要列出登录用户创建的进程。我怎样才能做到这一点。
注意:我已经搜索过相同的答案,并且大多数答案都涉及表格。请注意,我没有使用任何表单,我希望在 views.py 中实现该逻辑。
提前致谢 :)
django-rest-framework - Django rest 框架:使用 ModelViewSet 搜索带注释的字段
你好吗?:)
我的问题是关于在带有自定义对象管理器的注释字段上使用 django RF ViewSets、RF Filters。
所以我有这门课
和这个形状的一些经理
最后,这个 viewSet
我得到
SomeClass 没有名为“some_annotated_field”的字段
即使我在向 api 请求它时确实得到了该字段。
问题是:我如何搜索some_annotated_field
python - Django REST ViewSet ordering for Null-able columns
Consider a table Person:
We want to sort the rows by wealth, descending, i.e. to get (Abby, Carl, Ben, Diane)
, but Django's order_by
function sorts them by Null first:
gives (Ben, Diane, Abby, Carl)
, i.e. it first lists the Null values then sorts by wealth.
I tried redefining the get_queryset
method:
This does return the desired behavior, (Abby, Carl, Ben, Diane)
but messes up the detail view, and gives the get() returned multiple values
error.
Is there a way to get the desired behavior, by customizing the ordering functionality, or modifying get_queryset
only for the list view?
vue.js - DRF PATCH 方法,获取 request.data 中字符串类型的所有值
我在 vue 中发送带有表单数据的 axios.patch 请求
并调用 Django ModelViewset 部分更新
问题是我以字符串形式获取所有值.. null 值为“null”,整数值为“1”,依此类推。 在此处输入图像描述
我应该怎么做才能在 request.data 中获取正常值(null 为 None,整数为 int)?