django - 如何能够在 django 上使用 Http 方法添加记录

我正在创建一个 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

相似文章

随机推荐

最新文章