问题标签 [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.
django - DRF 嵌套路由器无法解析超链接关系的 URL
我正在尝试使用 drf-nested-routers 创建嵌套 url 模式,如下所示:
使用我当前的设置,我能够/projects
成功导航,并查看超链接的 join_requests 列表:
但是,当我单击 join_request 时,出现以下错误:
作为一个 DRF 初学者,经过大量研究后,我无法确定我哪里出错了。如果有人可以发布示例或建议我在哪里配置错误,我将不胜感激:
在models.py中,我有:
在 serializers.py 中:
在views.py中:
和 urls.py:
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的对象,但它会返回所有对象。
python - DRF - 嵌套路由器 - 在 POST/PUT/PATCH 上创建/更新嵌套对象
我目前正在启动一个简单的任务应用程序,我正在使用 Django 2.0.7、DRF 3.8.2 和 drf-nested-routes 0.90.2
我有这些模型:
因此,按照 drf-nested-routers 的文档,我设置了我的序列化器,如下所示:
我的观点是这样的:
最后,我的网址是这样的:
使用此设置,我可以拥有所需的嵌套路由,但如果我在嵌套路由上发布,我将无法使用我的路由来创建新对象。
我在 github 上看到了一个关于它的问题,但是就像 2 年前一样,我想知道是否有人知道该怎么做。
提前致谢。
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 进行了注册,如下所示:
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
:
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')
我似乎无法弄清楚为什么我提供的会发生此错误。任何帮助将非常感激。
python - django rest framework- serializers、read_only 和 drf-nested-routers,如何设置父级?
我有以下简单的待办事项列表模型:
我想做的是使用drf-nested-routers设置嵌套路由。例如:
我有一个 Todo 序列化器:
还有一个 TodoByList 视图集:
列表视图效果很好,但是对于创建我有点赶上 22。我的 Todo 模型的 list 参数是必需的(这是正确的),因此由于未设置perform_create
而不起作用。list
但是,如果我list
从read_only_fields
序列化程序中删除,则会.is_valid
失败,因为我没有将列表 ID 与我的请求数据一起传递。我需要做的是注入todo_list
从 url 参数中检索到的实例,但我不确定如何做到这一点。
django-rest-framework - Django Rest Framework:重复行的嵌套序列化程序,在外键的情况下
序列化程序.py
模型.py
我想要的对象:
我得到的对象:
我正在使用的数据具有 car_id 和 key 属性的重复值。我还有另一个困惑是应该是外键还是多对多字段。任何帮助,将不胜感激
django - 无法在 django 中使用反向 url 功能
tests.py
2.urls.py
当我运行python .\manage.py test apps.users.tests
此错误发生
我的结构文件夹像这样我的文件夹
我想知道为什么不能得到reverse("admins")
你知道吗?
django - 如何使用 drf-nested-routers 序列化无限深度嵌套示例?
我对 django-rest-framework 很陌生。我正在尝试将示例无限深度嵌套和超链接用于drf-nested-routers中的嵌套资源
我添加了一个 MailReply 对象只是为了尝试无限深度嵌套。当我尝试访问收件人时,它给了我这个 AttributeError。
序列化程序.py
视图.py
非常感谢任何建议或示例,在此先感谢。