Как получить возможность добавлять записи с помощью Http-методов на django
Я создаю систему аутентификации Django rest API и хочу возвращать данные в формате JSON, основная цель этого вопроса: Я хочу добавлять или удалять пользователей только путем добавления полей в формате json, а не в inputs, которые я создал :
это мой views.py :
# Rendering plant data as json :
def plant_json(request):
data=list(new_Plant.objects.values())
return JsonResponse(data,safe=False)
вот мой вывод (не обращайте внимания на значения) :
[{"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 (например, используя postman) без необходимости входов. Спасибо
То, что вы хотите использовать - это 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