首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django Rest Framework在测试时返回{'detail':'Not .‘},尽管它在URL中显示数据

Django Rest Framework在测试时返回{'detail':'Not .‘},尽管它在URL中显示数据
EN

Stack Overflow用户
提问于 2022-11-01 01:12:18
回答 1查看 36关注 0票数 1

我有下面的django项目,它具有以下views.py:

代码语言:javascript
运行
复制
@api_view(['GET'])
@permission_classes([AllowAny])
def getItem(request, **kwargs):
    user = get_object_or_404(User, username=request.user)
    items=Item.objects.filter(user=user)
    serializer = ItemSerializer(items, many=True)
    return Response(serializer.data)

这是serializer.py

代码语言:javascript
运行
复制
class ItemSerializer(serializers.ModelSerializer):
    user = serializers.CharField(source="user.username", read_only=True)

    class Meta:
        model= Workout
        fields = '__all__'

以下是Django Rest框架URL中的结果:

代码语言:javascript
运行
复制
Get Workout
GET /api/Shiko/items/
HTTP 200 OK
Allow: GET, OPTIONS
Content-Type: application/json
Vary: Accept

[
    {
        "id": 1,
        "user": "Shiko",
        "active": false,
        "name": "Item 1",
        "slug": null
    }
]

使用木星检查数据可用性的试验:

代码语言:javascript
运行
复制
import requests

data = requests.get(URL)
json_data = data.json()
print (json_data)

我的问题:

在我的设置中,什么可能是错误的,需要更改以返回测试代码中的有效数据,知道Json中有数据,但是在测试时没有找到返回。

另外,我使用了IsAuthenticated,它返回了{'detail': 'Authentication credentials were not provided.'},这意味着测试代码是有效的。

我做错了什么,我该怎么补救?

EN

回答 1

Stack Overflow用户

发布于 2022-11-01 02:00:13

我不理解您的逻辑,因为您使用get_object_or_404函数试图从request.user获取实际用户,但是您的视图使用AllowAny,因此在某些情况下,这个字段可能为空,您的响应可能为404。

也许你需要在你的木星“测试代码”中找到一些用户?

但我认为用木星测试代码是个坏主意,因为这不是测试用例或其他什么东西。

您可以尝试使用Pytest https://docs.pytest.org/en/7.2.x/,coverage https://coverage.readthedocs.io/en/6.5.0/来测试您的代码,这是非常简单和令人震惊的!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74270531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档