Django REST Framework - 在序列化器测试中设置请求?

2023-12-26

我构建了一个 Web 应用程序,其中后端是使用 Django REST Framework 实现的。现在我正在编写单元测试,并且在测试序列化器方法时遇到了问题。这是我正在努力解决的序列化器方法的一个示例:

    def get_can_edit(self, obj):
      request = self.context.get('request')
      user = User.objects.get(username=request.user)
      return user == obj.admin

当尝试从测试中调用它时,首先我声明序列化器的一个实例:

self.serializer = ConferenceSerializer()

但现在我需要self.serializer获得正确的请求时get_can_edit does self.context.get('request')。我使用正确的信息创建了一个虚假请求请求工厂 https://docs.djangoproject.com/en/1.9/topics/testing/advanced/:

self.request1 = RequestFactory().get('./fake_path')
self.request1.user = self.user1

现在我陷入困境,因为我不确定如何添加request1 to serializer这样self.context.get('request')将返回request1.

Thanks.


你需要pass context争论 to add request1到序列化器的context在测试中实例化序列化器时。

从 DRF 文档开始包括额外的上下文: http://www.django-rest-framework.org/api-guide/serializers/#including-extra-context

您可以通过传递一个来提供任意附加上下文context实例化序列化器时的参数。

你需要做类似的事情:

# pass context argument
self.serializer = ConferenceSerializer(context={'request': request1})

这将提供所需的request1反对你的序列化器context.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django REST Framework - 在序列化器测试中设置请求? 的相关文章

随机推荐

  • 如何在action类和jsp页面之间传递对象数据?

    我有一个名为 Code 的 Java 类 它具有与代码相关的所有值 例如codeId codeDescription等等及其 getter 和 setter 我正在成功检索一个操作类中的代码数据 我正在使用 struts 2 现在我想将这些
  • Go 中的 Unix FIFO?

    有没有办法用Go语言创建unix FIFO 没有Mkfifo nor Mknod in os包 尽管我预计命名的 FIFO 主要用于 posix 操作系统 事实上 有一个创建未命名的 FIFO 管道 的函数 但没有创建命名管道的函数 我是唯
  • 使用constraintEqualToAnchor()时设置自动布局约束后如何更改它们?

    我尝试使用以下命令设置具有自动布局约束的视图constraintEqualToAnchor override func viewDidLoad super viewDidLoad let myView UIView myView backg
  • 如果不存在则调用自由函数而不是方法

    假设您有一系列与类型无关的类 通过返回值的给定方法来实现共同概念 class A public int val const class B public int val const 假设您需要一个通用的自由函数T为未实现的任何类型返回常规值
  • 通过 ASPX 页面流式传输 PDF 数据

    我如何在我的网络服务器上流式传输 pdf 文件 并像谷歌文档一样在我自己的页面中显示它 该页面嵌入到页面中 None
  • swagger-codegen 客户端:如何在模型上包含 Jackson 注释

    我正在使用 swagger codegen 生成一个休息客户端 但遇到一个问题 我正在使用的服务返回一个具有继承的模型 API 模型如下所示 public class Person private List
  • Ansible 日期时间时区转换

    有没有办法在我的剧本中的 调试 语句中将ansible日期转换为不同的时区 我不想在剧本级别设置全球时区 我有这个 debug msg Y m d H M S strftime ansible date time epoch 这工作正常 但
  • 尝试的条件约束不是可索引操作

    我正在使用 DynamoDB 对于除 EQ 之外的所有 ComparisonOperators 的查询 API 它一直给出 尝试的条件约束不是可索引操作 错误 是什么原因 TableName My Table name IndexName
  • 使用 C# 程序为 Canon EOS Rebel XS 创建 USB 延时拍摄

    我想知道这是否可能 我想制作自己的软件来通过远程快门释放来控制快门的释放 从图中我看到它的电压为 3 3V 空载 阈值电压为 1 8V 我想知道如果我理解正确的话 我是否可以使用限制大约 5 25v 的 USB 电缆电压 这是否可能 或者我
  • R 根据前一行中的值删除行

    我是 R 新手 尝试根据前一行的值删除行 样本数据 Cust ID Date Value 500219 2016 04 11 12 00 00 0 500219 2016 04 12 16 00 00 0 500219 2016 04 14
  • /usr/bin/sudo 必须由 uid 0 拥有并设置了 setuid 位版本 .ubantu14.04 LTS

    当我为 npm 设置 EACCESS 并在终端中运行 chown 命令以更改所有者权限时 但现在我陷入了困境 sudo usr bin sudo 必须由 uid 0 拥有并设置了 setuid 位 我的版本是 ubuntu14 04 LTS
  • 将查询的所有结果放入 Prolog 中的列表中

    我想知道如何创建一个谓词 将从某个查询中获得的所有结果 因此我得到一个结果并按分号 直到得到 False 放入列表中 例如 如果我写foo X 1 2 3 在一些 Prolog 监听器中 假设结果是 X 11 X 22 False 我想将所
  • 覆盖css文件中的定义

    我有一个 css 文件 它定义了所有样式 tags 像这样 p 我怎样才能写一个在包含具有默认样式的样式表的页面中 没有简单的方法可以做到这一点 不过 有一些常见的技巧可以模拟这种行为 最好使用的方法取决于被覆盖区域的复杂程度以及您想要执行
  • 适用于 GAE 的 Weasyprint Dockerfile

    我正在尝试在 gae 上安装 weasyprint 我知道我们可以通过将运行时从 python 更改为 app yaml 中的自定义来将其传递到 Dockerfile 中来安装外部库 我在为 weasyprint 库创建 Dockerfil
  • Flink:是否有另一种方法来计算平均值和状态变量而不是使用 RichAggregateFunction?

    我不确定必须使用哪个流 Flink 转换来计算某个流的平均值并在 5 秒的窗口内更新状态 假设它是我的状态的整数数组 如果我使用RichFlatMapFunction我可以计算平均值并更新我的数组状态 但是 我必须打电话 streamSou
  • 如何修复“无法识别的 Guid 格式”

    如果我单击以下文件类型 我在 VS 2013 中不断收到此错误 cs cshtml config asax html 我最近刚刚更新到 Visual Studio 2013 Update 2 并修复了兼容性问题以始终运行 devenv ex
  • 如何使用 Meteor 更新插入

    让我的 Meteor upsert 功能正常工作时遇到了一些问题 我相当新 200 行代码 并且遇到了一些麻烦 该集合不断插入额外的行 而不仅仅是更新 我花了过去 30 分钟谷歌搜索 但找不到任何我能理解的例子 这是我的代码 Values
  • 在 Python 中创建菜单 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在用 python 制作一个菜单 需要 打印带有编号选项的菜单 让用户输入编号选项 根据用户选择的选项号 运行特定于该操作的函数 现在
  • 为什么 rspec 没有获取我的规范/支持文件?

    我有一个奇怪的错误 我的spec support文件夹中有一个utilities rb文件来保存一些辅助功能 例如登录方法 规范 支持 utilities rb include ApplicationHelper def sign in u
  • Django REST Framework - 在序列化器测试中设置请求?

    我构建了一个 Web 应用程序 其中后端是使用 Django REST Framework 实现的 现在我正在编写单元测试 并且在测试序列化器方法时遇到了问题 这是我正在努力解决的序列化器方法的一个示例 def get can edit s