问题标签 [tastypie]

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 投票
1 回答
5485 浏览

django - Django Tasty Pie:PUT 和 POST 方法的序列化

我正在 Django 和 Tasty Pie 上构建一个 RESTful 应用程序。我对 PUT 和 POST 方法有疑问。当我通过 Curl 发出请求时,出现错误。

卷曲请求:

错误:

序列化器在我的资源类中实现:

0 投票
2 回答
2837 浏览

django - 在 Django-Tastypie 中使用 POST 的 ForeignKey 问题

我正在使用 django-tastypie 构建一个简单的 API。这个想法是我有两个资源:

  • 表示用户留下的笔记的笔记资源。只有创建笔记的用户才能编辑它。
  • 评论资源。任何用户都可以在任何笔记上留下评论。

TL;DR:我无法将便笺编辑限制为便笺的创建者,同时仍允许任何用户对便笺发表评论。

我正在使用以下设置进行身份验证:

简而言之,用户只被授权编辑它们等于 created_by 属性的对象(他们只能编辑他们创建的对象)。

这链接如下:

所以在这里,当创建一个对象时,我会自动将当前用户附加到该created_by属性并将其链接到适当的授权。

资源很简单,Comment只有一个资源。ForeignKeyNote

问题是这样的: 如果用户 A 创建了一个注释并且用户 B 尝试对该注释进行评论,那么美味派发送(或模拟)一个 POST 请求来编辑该注释。该尝试被拒绝,因为用户 B 没有创建注释,因此创建注释失败。

问题是这样的:有没有办法:

  1. 防止 sweetpie 使用 POST 创建与 Note 资源的反向关系
  2. 更改授权方案,以便注释只能由其创建者编辑,但通常可以创建评论?

提前感谢您的任何见解。

编辑: 我有一个很大的技巧可以做到这一点。我相当确定它是安全的,但我并不肯定;我将尝试构建一些查询以确保。我没有使用fields.ForeignKeyinComment与 相关Note,而是创建了一个自定义字段:

每次我们尝试构建这个相关资源时,我们将请求标记为 a GET(因为我们希望它与SELECT查询匹配,而不是UPDATE匹配到PUTor POST)。如果使用不当,这真的很丑陋并且可能不安全,我希望有更好的解决方案。

编辑2:从阅读美味的源代码,据我所知,没有办法通过实际发送的查询过滤授权。

0 投票
2 回答
588 浏览

django - Django-tastypie。浏览器中更易于阅读的 JSON

我可以在浏览器中获得更易于阅读的 JSON 吗?更多格式化和漂亮的输出......

谢谢, 维塔利

0 投票
5 回答
6743 浏览

django - Django-tastypie。默认以 JSON 格式输出到浏览器

我看到'对不起,尚未实施。请将“?format=json”附加到您的网址。'。我总是需要附加字符串“?format = json”。我可以默认以 JSON 格式输出吗?

问候, 维塔利

0 投票
1 回答
1217 浏览

django - Django-tastypie。嵌套资源,URL

我可以使用嵌套 URL

例如:/api/v1/stores/21/categories/3/products/4132/

谢谢, 维塔利

0 投票
1 回答
1531 浏览

django - 美味派注册问题

刚开始使用 Django TastyPie 使用 JSON 公开数据。尝试使用 sweetpie.Api 将资源捆绑在一起urls.py

http://django-tastypie.readthedocs.org/en/latest/tutorial.html#creating-resources中给出的示例 不能开箱即用。

我的urls.py条目:

api.py

models.py

最后,当我尝试时,错误:

结果是:

但是,如果我只使用 in ,则不存在此问题urls.py

当我们尝试将事物联系在一起时,这里的问题是什么api.register(...)

0 投票
3 回答
9524 浏览

javascript - 将非 AMD 兼容的 JavaScript 模块与 require.js 一起使用?

我正在使用 require.js 来帮助组织基于 Backbone.js 的应用程序。

我正在尝试找出使用与 AMD 不兼容的第 3 方 JavaScript 库的正确方法 require.js

有问题的库是主干-tastypie.js。基本上,该库所做的是对 Backbone 的一些原型方法进行猴子补丁,以便为 TastyPie Django REST 框架提供更简单的支持。它通过直接操作全局命名空间中的 Backbone 对象来做到这一点。

但是,由于我使用 Backbone.js 作为 require.js 模块,因此当该库尝试访问它时它不可用。

我怎样才能在 Backbone 的范围内导入这个骨干美味?

0 投票
2 回答
199 浏览

javascript - 是否有一种正确的方法可以确保一次只有一个用户使用 REST+HTTP 对对象进行更改?

我创建了一个 Django/Tastypie 应用程序,其中多个人可能同时更改数据库中一行的属性,或者可能 PUT 数据是陈旧的。

例如:

现在假设任意数量的用户可以在任何时间点更改name或。他们可以同时进行,或者有人可以将应用程序打开很长时间,然后再回来更改它。descriptionThing

我试图避免的是不正确的潜在变化。鉴于以下情况:

在行之后#4,Thing #1 的状态应该是name = "some other name", description = "something"而不是name = "some other name", description = "my description"

假设应用程序不提前知道(实时或通过定期更新页面上的数据)服务器上的对象已更改,如何防止这种情况发生?

我考虑过添加一个字段sequence = models.PositiveIntegerField(),每次更新时我都会在其中增加它,这样我就可以在更新发生时判断对象是否已过期,但这是最好的方法吗?有没有更好的办法?这似乎是一种常见的模式,对吧?

0 投票
2 回答
4515 浏览

django - Tastypie-django 自定义错误处理

我想返回一些 JSON 响应,而不是只返回带有错误代码的标头。有没有一种方法可以处理这样的错误?

0 投票
1 回答
900 浏览

django - Tastypie 无法使用非 id 主键发布

我正在使用 django-tastypie 来公开 django 模型。但是,我在发布到此资源时遇到了一些问题。似乎美味派不喜欢我使用除“id”字段之外的另一个字段作为主键。

这是我看到的错误:

我的模型:

我的资源: