问题标签 [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 回答
203 浏览

django - 如何在 django rest 框架中发布多个字符串的请求?

我正在编写一个视图集,它接收来自用户的字符串值数组并根据发布请求验证表。我不知道如何从用户那里获取 request.POST 中的数组并使用 Postman 中的其余 API。比如:

另外,如何在邮递员中检查这个?

0 投票
2 回答
3719 浏览

django-rest-framework - 覆盖.get_queryset()时如何正确返回错误?

我在 DRF 文档上读到,您可以通过覆盖 .get_queryset() 来过滤查询参数。我正在寻找最佳实践,返回什么,以防过滤器不正确以及在哪里返回错误消息。

我提到的文档是here 我包括下面的源代码

感谢您的帮助

0 投票
3 回答
9914 浏览

python - Django rest框架中ViewSet和GenericViewSet的区别

我有一个 Django 休息框架GenericViewset,我正在尝试为其设置分页,如下所示:

这可以按预期工作。但是,如果我尝试仅对普通Viewset执行相同操作,如下所示:

我收到一条错误消息:

'PolicyViewSet' 对象没有属性 'paginate_queryset'

如何使用普通Viewset设置分页。DRF 中的 GenericViewset 和 Viewset 有什么区别?

0 投票
1 回答
401 浏览

django - 如何获取django ListAPIView中文件的相对路径?

想要从 API 返回的图像的相对路径:

想要为 API 返回“ /media/image.jpg”格式,而不是“ ”http://0.0.0.1:8000/media.image.jpg

对于以下内容,获取完整的 URL 即“ http://0.0.0.1:8000/media.image.jpg”格式

对于以下内容,获得正确的输出即:media/image.jpg格式,这是必需的

如何返回 ListAPIView 的相对路径 URL?

尝试将以下内容放入序列化程序中,但无法将图像上传到 API。

PS:

模型.py:

序列化程序.py:

0 投票
1 回答
515 浏览

django - DRF:将附加信息注入 request.data 的通用方法

我的情况是,我有一个端点samples,它sample通过ModelViewSet.

我的目标是,当用户 POST 向这个端点发送数据时

喜欢

我希望能够覆盖/添加键:值对到存储在方法中的这个传入有效request.data负载create

这不能通过简单的访问来完成,request.data因为它QueryDict是不可变的。

此外,我无法在该perform_create()方法中实现这一点,因为我可能注入的数据对验证至关重要。

目前我坚持使用以下解决方案,这需要我重写完整的create()方法:

  1. request.data在调用任何操作方法(如create()or )之前是否有一种通用的方法来编辑put()

  2. 如果不是 1.); 有不同的可能性吗?

提前致谢。

0 投票
1 回答
180 浏览

python - DRF:视图集lookup_field 配置不当

我正在将我的 DRF 从泛型迁移到视图集,但收到此错误:

这是我的 urls.py

这是我的观点

最后是我的序列化程序

0 投票
3 回答
3804 浏览

django - Django DRF 将 request.user 添加到模型序列化器

我正在使用 django rest 框架,并且我有一个通过模型视图集和模型序列化器创建的对象。此视图只能由经过身份验证的用户访问,并且对象应将其“uploaded_by”字段设置为该用户。

我已经阅读了文档,并得出结论认为这应该有效

视图集:

序列化器:

但是,这会导致以下错误:

这表明序列化程序没有填充“uploaded_by”。

根据我对文档的理解,这应该已将该字段添加到来自序列化程序的已验证数据中,作为 create 方法的一部分。

显然我误解了什么!

0 投票
2 回答
902 浏览

django - DRF Viewset - 如果对象已经存在,则不创建但返回

是否可以覆盖 Viewset 的创建以首先检查对象是否存在,如果存在,则返回该对象而不是创建它?

具体来说,在我的视图集中,我已经覆盖了 create 函数,如下所示:

有什么想法可以将物品退回吗?目前这只是吐回输入。即使我序列化并返回该项目,这似乎也不起作用,如下所示:

0 投票
1 回答
1136 浏览

django - 有没有办法在 Django Rest Framework 中聚合一个字段,该字段将汇总一个字段

目前我已经弄清楚如何在我的 serializers.py 中聚合单个列,但是我的薪水字段的总和将转到我的序列化程序中的total_salary字段,而我的模型中没有total_salary 。现在我的问题是我怎样才能在下面的 API 中做这样的事情:

现有的是这样的。

目前我做的一个解决方法是我现在在 ListView 中得到工资的总和,每次用户都会搜索一个特定的月份。计算将根据用户搜索的月份而变化。代码如下。

这是来自我的 serializers.py

这是来自我的模型视图集的get_queryset

在我计划的用例中,我希望在我的 API 中有一个包含所有工资总和的列,这样我就可以在前端单独调用该字段,而无需刷新页面来重新计算总工资。或者这是正确的方法吗?或者我应该坚持使用视图来重新计算总工资。

0 投票
1 回答
3997 浏览

redis - 如何使用 Django Rest Framework 实现 Redis 缓存?

我需要用我的 Django Rest Framework 站点实现 Redis 缓存。但是,当我使用带有类的 cache_page 装饰器进行负载测试时,它会提高每秒的请求,但会发生错误“'function' object has no attribute 'get_extra_actions'”

视图.py

在我的 Settings.py 中,我还添加了以下代码。

我也相应地添加了以下中间件

那也行不通。