问题标签 [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 投票
4 回答
25044 浏览

apache - django rest_framework 中缺少授权标头,是 apache 的错吗?

当我使用请求会话来存储我的令牌时,我已经设法扩展TokenAuthentication并且我有一个工作模型,但是当我尝试按照此处所述Authorization作为标头参数传递时,我注意到我的响应在没有 META 变量 HTTP_AUTHORIZATION 的情况下返回。我还注意到,如果我将“Authorization2”作为标头参数传递,它在请求中可见:

我的第一个猜测是 apache 正在删除授权标头,并且我已经阅读了一些 S/O 问题,指出如果它与基本授权和身份验证不匹配,apache 将丢弃该值,但我不知道如何允许授权标头“通过”到 Django 和 WSGIRequest。有谁知道如何解决这个问题?

我也使用 mod_auth_cas 和 mod_proxy,如果这改变了任何东西..

0 投票
1 回答
10509 浏览

python - 如何使用 django-rest-framework 在序列化程序级别扩展模型

我的模型如下所示:

我想做的是在给定的 MenuItem 中公开一个包含 isReplaceable 字段的组件列表(不是 MenuItemComponents)。到目前为止,我有:

它公开了一个 MenuItemComponents 列表并强制客户端进行多次调用以检索所有组件。使用 isReplaceable 字段中的附加数据公开组件列表将解决问题。

编辑
最后,我想获得一个列出 Component 元素的列表,但这些元素是用 MenuItemComponent 模型中的 isReplaceable 字段扩展的:

0 投票
2 回答
502 浏览

django - Djangorestframework Modelresource 从外键添加字段

我在 django-rest 框架中有一个 api,现在返回这个 json 数据:

但我希望它返回类似这样的内容(仅将 foreigneky 展平为其 ID):

在模型资源中执行此操作,现在我有(简化):

我已经尝试过类似的东西:

但这没有用

对于完整的故事,这是视图返回数据的方式,列表是对 SomeModel 查询的结果:

0 投票
2 回答
32618 浏览

python - 在保存之前编辑 django-rest-framework 序列化程序对象

我想django-rest-framwork在保存之前编辑一个序列化程序对象。这就是我目前的做法 -

如何使用django-rest-framework序列化程序对象来做到这一点?

0 投票
1 回答
50067 浏览

django - Django REST 框架:非模型序列化器

我是 Django REST 框架的初学者,需要您的建议。我正在开发一个网络服务。该服务必须为其他服务提供 REST 接口。我需要实现的 REST 接口不能直接使用我的模型(我的意思是获取、放置、发布、删除操作)。相反,它为其他服务提供了一些计算结果。根据请求,我的服务会进行一些计算并仅返回结果(不将结果存储在自己的数据库中)。

以下是我对如何实现 REST 接口的理解。纠正我,如果我错了。

  1. 创建进行计算的类。将其命名为“CalcClass”。CalcClass 在其工作中使用模型。
    • 计算所需的参数被传递给构造函数。
    • 实现计算操作。它将结果作为“ResultClass”返回。
  2. 创建结果类。
    • 派生自对象。
    • 它只有包含计算结果的属性。
    • 计算结果的一部分表示为元组的元组。据我了解,进一步序列化为这些结果实现一个单独的类并将这些对象的列表添加到 ResultClass 会更好。
  3. 为 ResultClass 创建序列化程序。
    • 从 serializers.Serializer 派生。
    • 计算结果是只读的,因此主要使用 Field 类作为字段,而不是专门的类,例如 IntegerField。
    • 我不应该在 ResultClass 和 Serializer 上实现 save() 方法,因为我不打算存储结果(我只想在请求时返回它们)。
    • 用于嵌套结果的 Impl 序列化程序(请记住上面提到的元组元组)。
  4. 创建视图返回计算结果。
    • 从 APIView 派生。
    • 只需要get()。
    • 在 get() 中,使用从请求中检索到的参数创建 CalcClass,调用其 calc(),获取 ResultClass,创建 Serializer 并将 ResultClass 传递给它,返回 Response(serializer.data)。
  5. 网址
    • 在我的情况下没有 api root。我应该只有 URL 来获得各种计算结果(使用 diff 参数计算)。
    • 添加调用 format_suffix_patterns 进行 api 浏览。

我错过了什么?这种方法总体上是正确的吗?

0 投票
2 回答
3030 浏览

django - 通过 API 上传 Django 文件

我是 django 新手,一直在设计一些包含 FileFields 的基本模型。

这是我的模型的示例:

我已经通过管理员测试了文件上传,但现在我正在寻找其他解决方案来通过 REST API 提交文件。我的第一次搜索导致了活塞,但大多数示例似乎不涉及模型,仅将文件上传到网站。

我的目标是解析目录,例如使用 os.walk,提交文件并用文件信息填充模型。

也就是说,我正在寻找建议和线索,以便开始调查。

提前致谢!

0 投票
2 回答
259 浏览

django - Django rest 框架从 0.x 迁移到 2.1.9

在从 django-rest-framwork 0.3.2 转换到最新的 2.1.9 时解决了我的一些麻烦后,我看不到修复这个问题(我同意 Reinout 的博客...... ..)

我有这个代码:

现在,我已经按照教程进行操作,并了解了如何做到这一点(甚至更漂亮)。通过在 url 中使用 slug。

但是......我想让客户端软件向后兼容......所以我想拥有这个而不将查询的值放在url中。客户端在帖子的标题中使用 json 数据和 ContentType json。

在 django rest 框架的第一个版本中,我什至得到了一个不错的可浏览表单,用于填写此查询的值

我的问题:如何在最新版本中完成这项工作?

我似乎无法在视图中获得表格......我可以在其中填写值并在过程中使用

也许很好地发布我到目前为止所尝试的内容......

首先,我在序列化器中更改了 ModelResource:

然后视图更改为:

注意:基于接受的答案(汤姆克里斯蒂),我也提出了一个答案,我展示了我是如何工作的(更详细)。

0 投票
4 回答
26848 浏览

django - django rest框架通过POST创建嵌套对象“模型”

我正在尝试发布一个新的嵌套对象,问题只是创建“顶部”对象(播放列表),但不要创建“ChannelItem”......

我的模型:

我的序列化器:

我使用 curl 发布以下数据:

我收到消息:

0 投票
4 回答
6940 浏览

python - 继承父类文档字符串作为 __doc__ 属性

在 Python 类继承中有一个关于Inherit docstrings 的问题,但那里的答案涉及方法文档字符串。

我的问题是如何继承父类的文档字符串作为__doc__属性。用例是Django rest 框架根据您的视图类的文档字符串在您的 API 的 html 版本中生成很好的文档。但是在没有文档字符串的类中继承基类(带有文档字符串)时,API 不会显示文档字符串。

很可能是 sphinx 和其他工具做了正确的事情并为我处理了文档字符串继承,但是 django rest 框架会查看 (empty).__doc__属性。

我试过类似的东西super(SubClassWithoutDocstring, self).__doc__,但这也只给了我一个None.

0 投票
1 回答
2182 浏览

django - Django-rest-framework json 转储

我使用 django-rest-framework 制作了一个简单的 JSON API,我希望能够将 5 个集合下载为一个包含 JSON 文件的集合的 zipfile。(我的应用需要离线转储数据)。

我正在考虑编写一个视图,例如,/download/将我所有 s 的输出捆绑MyModelList.as_view()在一个 zip 中并提供它。

这样做的最佳方法是什么?我可以使用 urllib/Requests 直接查询我的 API,但调用整个 http 堆栈似乎还有很长的路要走……

非常感谢!