Как обновить список json файлов в сериализаторе django, полученном методом POST? - PullRequest
0 голосов
/ 13 января 2020

Я попытался создать сериализатор документов для базы данных Mongodb, используя django rest api. Вот код:

Serializers.py

from rest_framework import serializers
from rest_framework_mongoengine import serializers as mongoserializers

from .models import client_reposit
class client_repositSerializer(mongoserializers.DocumentSerializer):

   class Meta:
       fields = '__all__'
       model = client_reposit

views.py

 from rest_framework import status

from rest_framework.decorators import api_view

from rest_framework.response import Response

from .models import client_reposit

from .serializers import client_repositSerializer

from django.shortcuts import redirect,get_object_or_404


@api_view(['GET', 'POST'])

def client_reposit_list(request):

      if request.method == 'GET':

        snippets = client_reposit.objects.all()
        serializer = client_repositSerializer(snippets, many=True)
        return Response(serializer.data)

    elif request.method == 'POST':
         recipe = get_object_or_404(client_reposit,id=b'request.data['ue_mac']')
         print(recipe)
         serializer = client_repositSerializer(data=request.data,instance=recipe)
         if serializer.is_valid():
            recipe = serializer.save()
            recipe.user = request.user
            recipe.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
         else:
            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)


@api_view(['GET', 'POST'])

def user_ogin(request):

    if request.method == 'POST':
        serializer = client_repositSerializer(data=request.data,many=True)
        if serializer.is_valid():
           serializer.save(ue_mac=request.data['ue_mac'])       
           return Response(serializer.data, status=status.HTTP_201_CREATED)
        else:
           return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

models.py:

from django_mongoengine import Document, fields

class client_reposit(Document):

  manufacturer_name=fields.StringField()    
  model_name=fields.StringField()    
  model_no=fields.StringField()    
  ue_mac=fields.StringField()    
  os_type=fields.StringField()    
  os_version=fields.StringField()   
  ver_80211_support=fields.StringField()    
  freq_support=fields.StringField()    
  device_type=fields.StringField()    
  serial_no=fields.StringField()    
  release_year=fields.StringField()    
  priority=fields.StringField()    
  chrome_ver=fields.StringField()    
  safari_ver=fields.StringField()    
  edge_ver=fields.StringField()    
  samsungBrowser_ver=fields.StringField()    
  is_sticky=fields.BooleanField()    
  TLS_ver=fields.StringField()    
  is_11wC=fields.BooleanField()   
  is_PMK=fields.BooleanField()    
  is_OKC=fields.BooleanField()    
  is_11r=fields.BooleanField()    
  is_11k=fields.BooleanField()    
  is_PMK_cache=fields.BooleanField()    
  is_UNII_2A=fields.BooleanField()    
  is_UNII_2C=fields.BooleanField()    
  is_UNII_3=fields.BooleanField()    
  is_WPA3=fields.BooleanField()      
  def __str__(self):

    """A string representation of the model."""

    return self.model_name

Здесь я необходимо обновить базу данных на основе id = "ue_ma c". В mongodb не установлен pk, кроме идентификатора объекта. Может кто-нибудь помочь мне рассказать, как обновить список JSON файлов, используя метод создания и обновления в Django.

...