问题标签 [drf-nested-routers]

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 投票
0 回答
303 浏览

django - DRF 嵌套路由器无法解析超链接关系的 URL

我正在尝试使用 drf-nested-routers 创建嵌套 url 模式,如下所示:

使用我当前的设置,我能够/projects成功导航,并查看超链接的 join_requests 列表:

但是,当我单击 join_request 时,出现以下错误:

作为一个 DRF 初学者,经过大量研究后,我无法确定我哪里出错了。如果有人可以发布示例或建议我在哪里配置错误,我将不胜感激:

在models.py中,我有:

在 serializers.py 中:

在views.py中:

和 urls.py:

0 投票
2 回答
2953 浏览

python - Django REST Framework generics.RetrieveUpdateDestroyAPIView 返回所有记录而不是一个

我是 DRF 的新手,正在尝试构建一个 rest API,我已将模型、URL、视图和序列化程序设置为:

模型.py:

来自 urls.py:

来自 apiview.py:

来自 serializers.py:

当我尝试访问时:http: //127.0.0.1 :8000/api/v1/deployments/?pk=1/它应该返回一个id=1的对象,但它会返回所有对象。

0 投票
1 回答
1893 浏览

python - DRF - 嵌套路由器 - 在 POST/PUT/PATCH 上创建/更新嵌套对象

我目前正在启动一个简单的任务应用程序,我正在使用 Django 2.0.7、DRF 3.8.2 和 drf-nested-routes 0.90.2

我有这些模型:

因此,按照 drf-nested-routers 的文档,我设置了我的序列化器,如下所示:

我的观点是这样的:

最后,我的网址是这样的:

使用此设置,我可以拥有所需的嵌套路由,但如果我在嵌套路由上发布,我将无法使用我的路由来创建新对象。

我在 github 上看到了一个关于它的问题,但是就像 2 年前一样,我想知道是否有人知道该怎么做。

提前致谢。

0 投票
1 回答
450 浏览

django - 如何实现 OneToOne 关系的嵌套 URL?

我有点坚持以下情况。我想使用 Django Rest Framework 为购物车应用程序构建一个 REST API,但是,由于遗留要求,我需要使用嵌套 URL。

一般来说,我有两个资源 AppUsers 和 Carts。这两种资源都在默认的 /appUsers/ 和 /carts/ 端点上可用。然后,我尝试使用嵌套路由器来获取特定用户的购物车详细信息视图,以便将其寻址为 /appUsers/app_user_pk/cart/ 而不是 /carts/pk/,因为每个 AppUser 无论如何都只能拥有一个购物车。

这是我的设置:

模型.py

序列化程序.py

视图.py

网址.py

但是,我无法让它工作,每当我尝试新的东西时,我都会遇到不同的问题。所以我想知道完成这项任务的最佳方法是什么?

本质上,我只想查看 AppUser 可以在 /appUsers/app_user_pk/cart/ 下拥有的一个购物车的购物车详细信息视图

解决方案:

我使用接受的答案来处理上述问题。此外,我还有另一个位于 /appUsers/app_user_pk/cart/products 的 ModelViewSet,然后我使用来自购物车/产品的 drf-nested-router 的 NestedDefaultRouter 进行了注册,如下所示:

0 投票
0 回答
147 浏览

django-rest-framework - 无法使用 drf-nested-routers 创建从作为父级反向关系的源的 2 级深的 NestedHyperlinkedIdentityField

我正在尝试使用drf-nested-routes模块和 Django Rest Framework 显示 2 级或更多级别的嵌套路由的 url。当它只有一层时我没有问题(即使用 获取路线parent_lookup_kwargs),但是当我尝试更深入时收到以下错误:

/en/api/v1.0/Sensors(1)/Datastreams(1)/Things 'RelatedManager' 对象的 AttributeError 没有属性 'Sensors'

以下是一些相关的序列化程序:

我正在尝试显示相关字段的 url。以下是可用的 url 路由:

路由已注册,我可以访问嵌套资源没问题。只有当我尝试创建NestedHyperlinkedIdentityField失败的资源时。

注意,如果我Many=True在 NestedHyperlinkedIdentityField 中使用并更改source字段使其不超过 1 个父级深度,我可以让它工作:

但是,这会创建一个ManyRelatedField对象,因此序列化的输出是:

所需的输出是:

任何帮助将不胜感激^^。

编辑:当序列化程序中使用的模型是父级的反向关系时,它似乎不会获取 url。您可以在以下部分看到这一点models.py

0 投票
1 回答
1414 浏览

django-rest-framework - drf-nested-routers RuntimeError('未找到父注册资源')

我正在尝试利用包 drf-nested-routers 在我的 API 中创建嵌套路由。

我试图跟随文档(https://github.com/alanjds/drf-nested-routers)以及通读多个 Stackoverflow 线程希望找出这个问题。

我想创建一个 NestedSimpleRouter。这是我目前在我的 routers.py 文件中的内容:

然后我将其包含api_url_patterns在我的 urls.py 文件中:

这是我的视图集:

希望有一个看起来像/api/v1/devices/<device_id>/breadcrumbs/. 不幸的是,我上面显示的代码导致错误RuntimeError('parent registered resource not found')

我似乎无法弄清楚为什么我提供的会发生此错误。任何帮助将非常感激。

0 投票
1 回答
222 浏览

python - django rest framework- serializers、read_only 和 drf-nested-routers,如何设置父级?

我有以下简单的待办事项列表模型:

我想做的是使用drf-nested-routers设置嵌套路由。例如:

我有一个 Todo 序列化器:

还有一个 TodoByList 视图集:

列表视图效果很好,但是对于创建我有点赶上 22。我的 Todo 模型的 list 参数是必需的(这是正确的),因此由于未设置perform_create而不起作用。list但是,如果我listread_only_fields序列化程序中删除,则会.is_valid失败,因为我没有将列表 ID 与我的请求数据一起传递。我需要做的是注入todo_list从 url 参数中检索到的实例,但我不确定如何做到这一点。

0 投票
1 回答
584 浏览

django-rest-framework - Django Rest Framework:重复行的嵌套序列化程序,在外键的情况下

序列化程序.py

模型.py

我想要的对象:

我得到的对象:

我正在使用的数据具有 car_id 和 key 属性的重复值。我还有另一个困惑是应该是外键还是多对多字段。任何帮助,将不胜感激

0 投票
1 回答
965 浏览

django - 无法在 django 中使用反向 url 功能

  1. tests.py

2.urls.py

当我运行python .\manage.py test apps.users.tests 此错误发生

我的结构文件夹像这样我的文件夹 我想知道为什么不能得到reverse("admins") 你知道吗?

0 投票
1 回答
305 浏览

django - 如何使用 drf-nested-routers 序列化无限深度嵌套示例?

我对 django-rest-framework 很陌生。我正在尝试将示例无限深度嵌套和超链接用于drf-nested-routers中的嵌套资源

我添加了一个 MailReply 对象只是为了尝试无限深度嵌套。当我尝试访问收件人时,它给了我这个 AttributeError。

序列化程序.py

视图.py

非常感谢任何建议或示例,在此先感谢。