问题标签 [django-rest-framework]

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.

0 投票
3 回答
6043 浏览

python - 如何在 django-rest-framework 中通过关系使用 ManytoManyField

基本上我有这样的模型:

现在我想要一个 API 来返回这样的 PLAYLISTS ......但是视频应该在 PlaylistVideo 模型中按 POSITION 排序

我该怎么办?

0 投票
1 回答
1792 浏览

python - 如何使用带有 django_webtest 的基本身份验证来访问 Django REST 框架?

我无法将数据发布到在我的测试中使用 Django REST 框架的某些视图。我正在使用 django_webtest 来测试我的用户 API。我遇到了以下代码的问题:

问题是第二次测试运行时出现 CSRF 错误。查看 Django REST Framework 文档,我读到只有在使用基于会话的身份验证时才会触发 CSRF 错误。所以,我想我会尝试基本身份验证,根据 Django 的文档,它只需要设置REMOTE_USER环境变量:

这更糟糕,因为用户甚至没有被授权查看这些页面(即访问 URL 返回的 403)。

我的问题是:如何使用 django_webtest 正确设置基本身份验证?

0 投票
2 回答
4352 浏览

django - Django REST 框架 - 过滤

我想用多个查询过滤多个字段,如下所示:

是否有任何内置方式,我查看了 django-filters 但它似乎有限,我想我必须在我的 api 视图中手动执行此操作,但它变得混乱,过滤过滤器上的过滤器

0 投票
3 回答
6207 浏览

django - Django Rest Framework - 反向关系

你如何在api中包含相关字段?

每个 Foo 都有几个与他相关的 Bar,比如图像或其他任何东西。

如何让这些 Bar 显示在 Foo 的资源中?

用tastepie 很简单,我不确定Django Rest Framework ..

0 投票
3 回答
21333 浏览

python - django-rest-framework: api 版本控制

所以在谷歌上搜索似乎普遍的共识是在 REST URI 中嵌入版本号是一种不好的做法和一个坏主意。

即使在 SO 上,也有强烈的支持者支持这一点。
例如API 版本控制的最佳实践?

我的问题是关于如何完成建议的解决方案,即在 django-rest-framework 中使用接受标头/内容协商来完成此任务。

它看起来像框架中的内容协商,
http ://django-rest-framework.org/api-guide/content-negotiation/ 已经配置为根据接受的 MIME 类型自动返回预期值。如果我开始对自定义类型使用 Accept 标头,我将失去框架的这种好处。

在框架中是否有更好的方法来实现这一点?

0 投票
2 回答
9908 浏览

django - Django REST 框架:关于对象级权限的帮助

按照本教程:

http://django-rest-framework.org/tutorial/1-serialization.html

通过http://django-rest-framework.org/tutorial/4-authentication-and-permissions.html

我有这个代码:

然后打开 API 的 URL 我得到这个错误:

似乎 None 作为参数“obj”的值传递给 isOwner.has_permission()。我究竟做错了什么?我想我严格按照教程。

0 投票
1 回答
474 浏览

django - 在 django-rest-framework 的上下文中,Web API 与实际网站不同吗?

我一直在研究 django-rest-framework。

告诉我我的印象是否正确。

它旨在帮助您为 Web 应用程序创建 RESTful API 端点。

它并不意味着生成您的实际网站。rest_framework 中包含的基于类的视图(APIView、generics.ListCreateAPIView 等)不应该用于呈现给网页本身。

那么这是否意味着您应该有一组用于此 api 的 url 和另一组用于访问和导航网站的 URL?

0 投票
1 回答
759 浏览

django - Django 字段查询处理

我目前正在编写一个项目,该项目在后端使用带有 Django-Rest-Framework 的 Django,在前端使用 Ember.js/Ember-data。

我希望以这种格式将查询从我的 ember 应用程序传递回我的 django api

其中参数是正在查询的模型上的字段,X 是要搜索的值。

像这样松散的东西应该是结果查询

其中 QUERY_PARAMS.dict() 是 Django 语法,它提供格式的字典

** 将 dict 转换为 Django 所期望的关键字参数。
因此,上面的行实际上是:

我已经使用自定义视图和自定义 mixin 进行了这项工作,但我担心我的查询处理实现可能有点幼稚,这让我觉得这是一种非常常见的模式。

我想知道是否有用于 Django 的库,或者我不完全理解的一些 Django 内部组件是否可以在没有自定义查询集代码的情况下为我处理这些相对常见的查询?

任何指向正确方向的指针将不胜感激。

史蒂夫凯恩

编辑:

这是我从处理整数查询的自定义视图中获取的主要方法。我插入评论以澄清正在发生的事情。让我知道这是否有帮助或看起来很熟悉/可怕/真棒/有点温和。

史蒂夫

0 投票
2 回答
9547 浏览

django - Django REST Framework - 发布包含自然键的外键字段?

我最近开始使用 Django REST 框架(以及 Django 和 Python——我是 RTOS/嵌入式系统人员!)以实现 RESTful Web API。还没有任何无法通过 Google 解决的问题,但是这个问题已经让我难倒了几个小时。

我有一个嵌入式系统,它监听与一系列设备相关的事件——类似于电话拨打电话,为了简洁起见,我将在这里讨论。电话有一个号码和大量与之相关的呼叫(它已拨打)。呼叫具有关联的电话(发出呼叫的电话)和创建时间。发生调用时,应将其发布到 API。我有一个嵌入式系统,它监听呼叫及其始发电话号码,并将它们提交给 API。由于嵌入式系统知道电话号码,我希望它提交:{"srcPhone":12345678}而不是{"srcPhone":"http://host/phones/5"}. 这避免了我的嵌入式系统需要知道每部电话的主键(或每次要提交呼叫时按号码获取电话)。

谷歌和 Django 文档建议我可以使用自然键来实现这一点。我的尝试如下:

模型.py

视图.py

序列化程序.py

为了进行测试,我创建了一个号码为 123456 的电话。然后我 POST {"srcPhone":123456} 到http://host/calls/(在 urls.py 中配置以运行 CallList 视图)。这会在 /calls/ 处产生 AttributeError -“int”对象没有属性“startswith”。异常发生在 rest_framework/relations.py(第 355 行)中。如果有帮助,可以发布整个跟踪。在阅读了relationship.py 后,看起来REST 框架并没有按号码查找电话,而是将srcPhone 属性当作一个URL 来处理。这通常是正确的,但我希望它通过自然键查找电话,而不是提供 URL。我在这里错过了什么?

谢谢!

0 投票
2 回答
12990 浏览

django - Django REST框架中的可为空的ForeignKey字段

在 Django REST 框架(2.1.16)中,我有一个带有可为空 FK 字段的模型type,但 POST 创建请求给出了400 bad request该字段是必需的。

我的模型是

序列化器是:

我试图type明确添加到序列化程序中

它没有效果。

http://django-rest-framework.org/topics/release-notes.html#21x-series我看到有一个错误,但它已在 2.1.7 中修复。

我应该如何更改序列化程序以正确处理我的 FK 字段?

谢谢!


更新:从它给出的外壳

但没有类型=无:

在这两种情况下,它都给出