我正在创建一个 Django rest API 身份验证系统,我想以 JSON 格式返回数据,这个问题的主要目的是:我只想通过在
这是我的views.py:
# Rendering plant data as json :
def plant_json(request):
data=list(new_Plant.objects.values())
return JsonResponse(data,safe=False)
这是我的输出(不要介意 values ):
[{"id": 5, "name": "dqsd", "adress": "sdq", "type": "PV", "location": "dqd", "list_gateway": "gggdds", "status": "etude"}, {"id": 6, "name": "fdsfds", "adress": "fsdfds", "type": "PV", "location": "fdsfds", "list_gateway": "fdsfs", "status": "etude"}, {"id": 7, "name": "sdqdssd", "adress": "dsdsq", "type": "HYBRID", "location": "dqsdqs", "list_gateway": "dsdqss", "status": "online"}]
通常为了添加新植物,我创建了一个 HTML 模板,其中包含用户可以添加植物的输入,但我想要的是我只能通过直接使用 json 格式添加字段来添加植物(使用邮递员例如)不需要输入。谢谢
回答1
您要使用的是 CreateAPIView
(请参阅文档 https://www.django-rest-framework.org/api-guide/generic-views/#createapiview)。您需要做的就是定义您需要的序列化程序并在视图中使用它。
# serializers.py
from models import Plant
from rest_framework import serializers
class PlantSerialzer(serializers.ModelSerializer):
class Meta:
model = Plant
fields = ('id', 'name', 'address', 'type', 'location', 'list_gateway', 'status')
# views.py
from my_plant_module.serializers import PlantSerializer
from rest_framework.generics import CreateAPIView
class PlantCreateView(CreateAPIView):
queryset = Plant.objects.all()
serializer_class = PlantSerializer