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

汤姆

我构建了一个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_editself.context.get('request')我使用RequestFactory用正确的信息创建了一个伪造的请求

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

现在,我坚持,因为我不能确定如何添加request1serializer这样self.context.get('request')会返回request1

谢谢。

拉胡尔·古普塔(Rahul Gupta)

您需要在实例化测试中的序列化器传递context参数以添加request1到序列context化器。

来自DRF文档,关于包括额外的上下文:

您可以context在实例化序列化程序时通过传递参数来提供任意其他上下文

您需要执行以下操作:

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

这将为request1您的序列化器提供所需的对象context

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django REST Framework-在ApiClient的序列化程序测试中设置请求

来自分类Dev

如何在django-rest-framework 3.0序列化程序中检查OPTIONS请求?

来自分类Dev

Django Rest Framework序列化程序中的循环依赖

来自分类Dev

Django Rest Framework序列化程序和Django表单

来自分类Dev

Django Rest Framework序列化在发布请求时失败

来自分类Dev

Django Rest Framework实例化序列化程序错误

来自分类Dev

如何在 Django Rest Framework 序列化程序中访问通过 POST 请求发送的额外数据

来自分类Dev

Django Rest Framework嵌套的序列化程序部分更新

来自分类Dev

Django Rest Framework更新嵌套序列化程序

来自分类Dev

在Django Rest Framework中将HyperlinkedField用于序列化程序

来自分类Dev

Django REST Framework 序列化程序验证错误

来自分类Dev

Django Rest Framework 中用户特定的序列化程序

来自分类Dev

模型,视图或序列化程序是否代表Django Rest Framework中的REST资源?

来自分类Dev

Django REST Framework ManyRelatedField的序列化

来自分类Dev

翻译序列化 Django Rest Framework

来自分类常见问题

将请求上下文从Django Rest Framework中的Viewset传递给序列化器

来自分类Dev

Django序列化程序与rest_framework序列化程序

来自分类Dev

Django Rest Framework中的序列化器字段筛选?

来自分类Dev

在Django-rest-framework中序列化通用关系

来自分类Dev

如何在Django Rest Framework中序列化ChoiceFields?

来自分类Dev

如何在Django Rest Framework 3.0序列化程序中访问查询参数?

来自分类Dev

在Django Rest Framework中通过URL访问序列化程序字段

来自分类Dev

我如何在Django Rest Framework序列化程序中获取父对象

来自分类常见问题

django-rest-framework 3.0在嵌套序列化程序中创建或更新

来自分类Dev

如何在Django Rest Framework嵌套序列化程序中动态更改深度?

来自分类Dev

Django REST Framework中序列化程序验证的顺序

来自分类Dev

Django Rest Framework中序列化程序之间的Mixin公共字段

来自分类Dev

Django Rest Framework-序列化程序中的字段级别验证

来自分类Dev

在Django Rest Framework 3中使用可写的嵌套序列化程序创建多个对象

Related 相关文章

  1. 1

    Django REST Framework-在ApiClient的序列化程序测试中设置请求

  2. 2

    如何在django-rest-framework 3.0序列化程序中检查OPTIONS请求?

  3. 3

    Django Rest Framework序列化程序中的循环依赖

  4. 4

    Django Rest Framework序列化程序和Django表单

  5. 5

    Django Rest Framework序列化在发布请求时失败

  6. 6

    Django Rest Framework实例化序列化程序错误

  7. 7

    如何在 Django Rest Framework 序列化程序中访问通过 POST 请求发送的额外数据

  8. 8

    Django Rest Framework嵌套的序列化程序部分更新

  9. 9

    Django Rest Framework更新嵌套序列化程序

  10. 10

    在Django Rest Framework中将HyperlinkedField用于序列化程序

  11. 11

    Django REST Framework 序列化程序验证错误

  12. 12

    Django Rest Framework 中用户特定的序列化程序

  13. 13

    模型,视图或序列化程序是否代表Django Rest Framework中的REST资源?

  14. 14

    Django REST Framework ManyRelatedField的序列化

  15. 15

    翻译序列化 Django Rest Framework

  16. 16

    将请求上下文从Django Rest Framework中的Viewset传递给序列化器

  17. 17

    Django序列化程序与rest_framework序列化程序

  18. 18

    Django Rest Framework中的序列化器字段筛选?

  19. 19

    在Django-rest-framework中序列化通用关系

  20. 20

    如何在Django Rest Framework中序列化ChoiceFields?

  21. 21

    如何在Django Rest Framework 3.0序列化程序中访问查询参数?

  22. 22

    在Django Rest Framework中通过URL访问序列化程序字段

  23. 23

    我如何在Django Rest Framework序列化程序中获取父对象

  24. 24

    django-rest-framework 3.0在嵌套序列化程序中创建或更新

  25. 25

    如何在Django Rest Framework嵌套序列化程序中动态更改深度?

  26. 26

    Django REST Framework中序列化程序验证的顺序

  27. 27

    Django Rest Framework中序列化程序之间的Mixin公共字段

  28. 28

    Django Rest Framework-序列化程序中的字段级别验证

  29. 29

    在Django Rest Framework 3中使用可写的嵌套序列化程序创建多个对象

热门标签

归档