我有下面的django项目,它具有以下views.py:
@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
class ItemSerializer(serializers.ModelSerializer):
user = serializers.CharField(source="user.username", read_only=True)
class Meta:
model= Workout
fields = '__all__'
以下是Django Rest框架URL中的结果:
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
}
]
使用木星检查数据可用性的试验:
import requests
data = requests.get(URL)
json_data = data.json()
print (json_data)
我的问题:
在我的设置中,什么可能是错误的,需要更改以返回测试代码中的有效数据,知道Json中有数据,但是在测试时没有找到返回。
另外,我使用了IsAuthenticated
,它返回了{'detail': 'Authentication credentials were not provided.'}
,这意味着测试代码是有效的。
我做错了什么,我该怎么补救?
发布于 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/来测试您的代码,这是非常简单和令人震惊的!
https://stackoverflow.com/questions/74270531
复制相似问题