小编Tom*_*Tom的帖子

Django REST框架 - 在串行器测试中设置请求?

我构建了一个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
Run Code Online (Sandbox Code Playgroud)

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

self.serializer = ConferenceSerializer()
Run Code Online (Sandbox Code Playgroud)

但现在我需要self.serializer的时候有正确的请求get_can_editself.context.get('request').我使用RequestFactory创建了一个包含正确信息的虚假请求:

self.request1 = RequestFactory().get('./fake_path')
self.request1.user = self.user1
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

python django django-rest-framework

6
推荐指数
1
解决办法
1559
查看次数

.NET Microsoft.AspNetCore.Http.Extensions UriHelper.GetDisplayUrl 返回无效的 URI

我是 .NET 框架的新手,并且在界面方面遇到问题Microsoft.AspNetCore.Http.HttpRequest。我正在尝试使用GetDisplayUri扩展,但它返回无效的 URI。后来我将 URI 传递给System.Uri.CreateThis()并抛出以下异常:

System.UriFormatException: Invalid URI: The format of the URI could not be determined.
Run Code Online (Sandbox Code Playgroud)

GetDisplayUri方法应该根据 中的字段创建一个 URL HttpRequest,但我无法弄清楚 URL 的哪些部分位于哪些字段中,而且我在网上找不到任何相关示例。我特别想知道应该如何将 URL 分解为PathPathBaseQueryString变量。

例如,假设我想构建 URL "http://example.com/route/endpoint?foo=bar"。我很确定我的QueryString只是"?foo=bar",但我不知道如何将 URL 的其余部分分解为其他字段。另请告诉我,除了我提到的三个相关字段之外,是否还有其他字段与 相关GetDisplayUri

如果有任何不清楚的地方请告诉我。

.net c# http .net-core

2
推荐指数
1
解决办法
5095
查看次数

标签 统计

.net ×1

.net-core ×1

c# ×1

django ×1

django-rest-framework ×1

http ×1

python ×1