简体   繁体   中英

Django rest framework and python3.5 OrderedDict mutated during iteration

I use Django rest framework and python3.5. Earlier I had another version of python and everything was going right. When I want to get some information from server with URL for example like:

" http://127.0.0.1:8000/api/companies "

I'm getting error:

"OrderedDict mutated during iteration"

.

In views.py I have:

from django.shortcuts import render
from companies.models import Companies
from companies.serializers import CompaniesSerializer
from rest_framework import generics
from rest_framework.response import Response
from rest_framework.renderers import JSONRenderer
from rest_framework import status


class CompaniesList(generics.ListCreateAPIView):
    queryset = Companies.objects.all()
    serializer_class = CompaniesSerializer


class CompaniesDetail(generics.RetrieveUpdateDestroyAPIView):
    queryset = Companies.objects.all()
    serializer_class = CompaniesSerializer

What should I do to make it working? Where is something mutating the dict?

I don't know why using ListCreateApiView is mutating dict, but I changed class into function like :

@api_view(['GET'])
    def CompaniesList(request):
        if request.method == 'GET':
            companies = Companies.objects.all()
            serializer = CompaniesSerializer(companies, many=True)
            return Response(serializer.data)

and now it's working...

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM