【问题标题】:Django rest framework and python3.5 OrderedDict mutated during iterationDjango rest框架和python3.5 OrderedDict在迭代期间发生了变异
【发布时间】:2016-02-24 20:47:53
【问题描述】:

我使用 Django rest 框架和 python3.5。早些时候我有另一个版本的python,一切都很顺利。当我想通过 URL 从服务器获取一些信息时,例如:

http://127.0.0.1:8000/api/companies

我收到错误:

“OrderedDict 在迭代过程中发生了变异”

.

在 views.py 我有:

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

我应该怎么做才能让它工作?哪里有什么东西在改变字典?

【问题讨论】:

    标签: python django django-rest-framework


    【解决方案1】:

    我不知道为什么使用 ListCreateApiView 会改变 dict,但我将类更改为如下函数:

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

    现在它正在工作......

    【讨论】:

      猜你喜欢
      • 2018-03-04
      • 2019-02-14
      • 2021-10-29
      • 2019-03-04
      • 2021-12-20
      • 2019-05-08
      • 2015-12-09
      • 2019-09-07
      • 2022-01-13
      相关资源
      最近更新 更多