问题标签 [django-rest-viewsets]

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 回答
2156 浏览

django-rest-framework - 从另一个视图调用视图

我有一个视图集,其中一个视图为:

我从另一个视图中调用此视图,例如:

但它不调用映射到的我的special函数"/special/",而是调用映射到的函数"/"。我想我需要以url_path某种方式通过或使用 view 获取视图name?但是,我也不知道该怎么做。

0 投票
1 回答
438 浏览

django - 如何通过 Django Rest Framework 上传图像?

这是我的模型,其中包含ImageField

序列化器:

看法:

因此,当我尝试通过 Django Rest Framework 界面上传用户图片时 - 它更新到图像的超链接 bu 不会在media文件夹中创建图像文件。当我通过 django 管理界面上传图片时,一切正常。我哪里错了?

0 投票
0 回答
179 浏览

django-rest-framework - 在 API 页面中无法使用更新方法查看视图集

我有几个视图集继承viewsets.ViewSet并包含覆盖list()方法。我已经在 API 页面上注册了所有这些视图集。

现在我还有一个视图集可以覆盖update(),但我无法在 API 页面上看到它。

这是我的代码:

进入路由器:

router.register(r'readnotificationsapi', notification_views.ReadNotificationsAPI, 'readnotificationsapi')

其他只有list()在 API 页面上可见的自定义视图,但不是这个。有什么帮助吗?

0 投票
1 回答
4959 浏览

python - 覆盖 Djangorest 视图集删除行为

我已经定义了一个这样的模型:

我的序列化器:

在视图中:

现在,我可以使用 http 方法DELETE调用 url: 'servername/doctors/id/'来删除医生。但是,我想覆盖此模型的删除行为。我希望,当用户删除一条记录时,它的is_active字段设置为false,而不是实际从数据库中删除记录。我还想保持 Viewset 的其他行为,如列表、放置、创建。

我怎么做?我在哪里编写覆盖此删除行为的代码?

0 投票
3 回答
4448 浏览

python - 从 URL 参数中过滤 Django ModelViewSet 列表

嗨,我有一个模型,如:

我的视图看起来像:

在我的网址中:

现在我想按一些患者 ID 过滤预约列表。此 id 应由请求者通过 url 提供。我正在考虑使用kwargs来捕捉它。但我不知道该怎么做。我知道我必须重写list方法。

如何自定义url和/或视图以适应患者 ID 参数?我只想修改列表请求,所有其他操作(创建、详细信息、销毁)应由模型视图集的默认行为处理。

谢谢。

0 投票
1 回答
788 浏览

python - Use different serializer depending on the authentication method in django rest framework

I'm trying to implement a user profile in django rest framework.

Users should be able to request the profile of other users; however, since profiles contain sensitive information, I want to limit the information returned to non-owners and non-authenticated users when they request a profile.

I'm looking for a test that I can run inside my view methods that will determine which serializer to use for that request.

How can I do this?

My serializers would look like this:

And I would try to distinguish between them here...

I don't think it'd be too hard to check if the request was sent by the owner, since I can just cross-reference the profile id.

However, how would I check whether the user was logged in or not? I've tried looking at request.user.auth in the view method, but that seems to be None whether or not the request is logged in.

0 投票
0 回答
81 浏览

python - 当使用 django rest frameworks viewset 视图和模型序列化器时,你需要编写测试吗?

使用 django rest framworks 视图集和模型序列化程序时,您需要编写测试吗?

使用 djangos 或 django rest 框架基类(如 API 视图或序列化程序)的自定义实现代码,我可以看到需要为其编写测试,但是当您使用模型序列化程序或视图集时,它们彼此紧密连接并且需要最少的代码我们写测试吗?

我想继续测试驱动开发,但我不知道如何为这些案例编写测试。

这里的示例是从 URL 到 View 到序列化程序的代码 要建模如何进行测试?

网址.py

视图.py

序列化程序.py

模型.py

0 投票
6 回答
22107 浏览

python - 'CityListViewSet' 应该包含一个 `serializer_class` 属性,或者覆盖 `get_serializer_class()` 方法

我假设标题中的错误,为了清楚起见再次在这里

我的序列化程序没有连接到我的视图,这在我的代码中应该是。我不确定这个错误在哪里。不知道大家有没有见过类似的?

这是代码。

路由器:

看法:

序列化器:

是什么导致代码似乎正确连接的断言错误?

0 投票
1 回答
292 浏览

python - 视图集不适用于 ^ 和 $ 添加的 int() 以 10 为底的无效文字:在字符串正则表达式 django rest 框架上

我有以下指向的viewsets网址djangorestframework

如上所述,此网址有效,但如果我这样做:

它坏了,我得到一个404 错误。the^是一个从头开始进行模式匹配的正则表达式, the$就像^后面的模式匹配但是。

另外,请查看此网址:

遇到同样的问题,^$我在city占位符中输入字符串时出现错误

例如,如果我在浏览器中调用 url 时chicago放入占位符city

我在 django 调试页面中收到以下错误:

异常类型:ValueError

异常值:

基数为 10 的 int() 的无效文字:'chicago'

这没有任何意义我的正则表达式是正确的。

其他人有这个问题吗?

0 投票
1 回答
3423 浏览

python - 何时将 http 方法映射到查看方法 django rest 框架

我见过这样实现的视图集:

我们可以在 django rest frameworks 文档中扩展这行代码吗:

“如果需要,我们可以将此视图集绑定到两个单独的视图中,如下所示:”

将在哪里连接/使用user_listuser_detail

更重要的是,您何时会在使用视图集或通用视图时映射 http 方法?

因为我已经看到这样的示例,用于不使用映射并使用它们的视图集。使用示例我们可以谈谈它是如何工作的以及它是如何连接的吗?

还有这是怎么回事:

如果我们有路由装饰器,为什么我们有 url 映射?它们之间有什么区别?