Taimur Islam
Taimur Islam

Reputation: 990

Rest api in django POST method

views.py

from django.shortcuts import render, HttpResponse, get_object_or_404
from django.http import JsonResponse
from .models import Locker
from .serializers import LockerSerializer
from rest_framework.response import Response
from rest_framework import status
from rest_framework.views import APIView
from django.core import serializers


def locker_data_response(request):
    if request.method == 'GET':
        locker_mac_address = request.GET.get('locker_mac_address')  # this will return None if not found
        locker_information = get_object_or_404(Locker, locker_mac_address = locker_mac_address)
        print(locker_information)
        locker_information_serialize = LockerSerializer(locker_information)
        print(locker_information_serialize)
        return JsonResponse(locker_information_serialize.data)
    elif request.method == 'POST':
        locker_all_information_in_json = serializers.get_deserializer(request.POST())
        print(locker_all_information_in_json)

json data

{
    "id": 1,
    "locker_name": "H15_c6d730",
    "locker_mac_address": "CE:B2:FE:30:D7:C6",
    "locker_rssi": -78,
    "locker_protocol_type": "5",
    "locker_protocol_version": "3",
    "locker_scene": "2",
    "locker_group_id": "0",
    "locker_org_id": "0",
    "locker_type": 5,
    "locker_is_touch": true,
    "locker_is_setting_mode": false,
    "locker_is_wrist_band": false,
    "locker_is_unlock": false,
    "locker_tx_power_level": "-65",
    "locker_battery_capacity": "57",
    "locker_date": 1518500996721,
    "locker_device": "CE:B2:FE:30:D7:C6",
    "locker_scan_record": "terterwer"
}

I am trying to send the json in this format from mobile device to my server.I check the get method, it works perfectly. But how can i post this json in my server and how can i get the json data in my server side?

Upvotes: 0

Views: 230

Answers (1)

JPG
JPG

Reputation: 88499

Change your views to something like this,

def locker_data_response(request):
    # ----
    # ----
    # ----

    if request.method == 'POST':
        post_data = request.data  # your post data will be here
        locker_all_information_in_json = serializers.get_deserializer(post_data)
        # do stuff with post data
        #return json_data


request.data holds the POST data to the view

Upvotes: 1

Related Questions