Jal*_*yev 4 django-views django-rest-framework
我正在学习drf 我使用它为迷你市场应用程序创建了 api。创建一些数据后,我尝试获取所有数据,但得到了断言错误,例如“您将序列化器实例作为数据传递,但可能意味着传递序列化.data或.error.表示。”:(谁知道,我能做什么?
视图.py
@api_view(['GET'])
def view_items(request):
# checking for the parameters from the URL
items = Item.objects.all()
# if there is something in items else raise error
if items:
return Response(ItemSerializer(items))
else:
return Response(status=status.HTTP_404_NOT_FOUND)
Run Code Online (Sandbox Code Playgroud)
urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.ApiOverview, name='home'),
path('create/', views.add_items, name='add-items'),
path('all/', views.view_items, name='view_items'),
]
Run Code Online (Sandbox Code Playgroud)
序列化器.py
from pyexpat import model
from django.db.models import fields
from rest_framework import serializers
from .models import Item
class ItemSerializer(serializers.ModelSerializer):
class Meta:
model = Item
fields = ('category', 'subcategory', 'name', 'amount')
Run Code Online (Sandbox Code Playgroud)
正如错误所述,您无法在响应中返回序列化程序:
返回响应(ItemSerializer(项目))
您可以返回序列化器的数据,因此:
@api_view(['GET'])
def view_items(request):
# checking for the parameters from the URL
items = Item.objects.all()
serializer = ItemSerializer(items, many=True)
# if there is something in items else raise error
if items:
return Response(serializer.data)
else:
return Response(status=status.HTTP_404_NOT_FOUND)Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3071 次 |
| 最近记录: |