POST不工作的Django Rest框架

POST不工作的Django Rest框架,django,django-rest-framework,Django,Django Rest Framework,我在谷歌上找到了消息返回,而不是find。 什么是我的代码不正确? 我需要帮助解决正确的问题。 是否使用基于表单的通用视图? Im desenv an restAPI,我不理解代码中的问题,我正在运行并返回: 我检索消息、流。 views.py: from snippets.models import Equipamento, Colaborador from snippets.serializers import EquipamentoSerializer, ColaboradorSeria

我在谷歌上找到了消息返回,而不是find。 什么是我的代码不正确? 我需要帮助解决正确的问题。 是否使用基于表单的通用视图? Im desenv an restAPI,我不理解代码中的问题,我正在运行并返回: 我检索消息、流。

views.py:

from snippets.models import Equipamento, Colaborador
from snippets.serializers import EquipamentoSerializer, ColaboradorSerializer
from rest_framework import mixins
from rest_framework import generics

class EquipamentoList(generics.ListCreateAPIView):
    serializer_class = EquipamentoSerializer

    def get_queryset(self):
        queryset = Equipamento.objects.all()
        id = self.request.query_params.get('id', None)
        if id is not None:
            queryset = queryset.filter(id=id)
        return queryset


# class ColaboradorList(generics.CreateAPIView):
#     queryset = Colaborador.objects.all()
#     serializer_class = ColaboradorSerializer

#     def get_queryset(self):
#         queryset = Colaborador.objects.all()
#         id = self.request.query_params.get('id', None)
#         if id is not None:
#             queryset = queryset.filter(pk=pk)
#         return queryset

#     def create(self, request, pk):
#         queryset = Colaborador.objects.all()
#         return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)



# class ColaboradorDetail(generics.RetrieveUpdateDestroyAPIView):
#     queryset = Colaborador.objects.all()
#     serializer_class = ColaboradorSerializer

class ColaboradorList(mixins.ListModelMixin,
                  mixins.CreateModelMixin,
                  generics.GenericAPIView):
    queryset = Colaborador.objects.all()
    serializer_class = ColaboradorSerializer

    def get(self, request, *args, **kwargs):
        return self.list(request, *args, **kwargs)

    def post(self, request, *args, **kwargs):
        return self.create(request, *args, **kwargs)

class ColaboradorDetail(mixins.RetrieveModelMixin,
                    mixins.UpdateModelMixin,
                    mixins.DestroyModelMixin,
                    generics.GenericAPIView):
    queryset = Colaborador.objects.all()
    serializer_class = ColaboradorSerializer

    def get(self, request, *args, **kwargs):
        return self.retrieve(request, *args, **kwargs)

    def put(self, request, *args, **kwargs):
        return self.update(request, *args, **kwargs)

    def delete(self, request, *args, **kwargs):
        return self.destroy(request, *args, **kwargs)
序列化程序.py

from rest_framework import serializers
from rest_framework.validators import UniqueValidator
from snippets.models import Equipamento, Colaborador, Propriedade, MotivoParada, Apontamento

class EquipamentoSerializer(serializers.Serializer):
    id = serializers.IntegerField(read_only=True)
    cod_equip = serializers.IntegerField(validators=[UniqueValidator(queryset=Equipamento.objects.all())])
    desc_equip = serializers.CharField(allow_blank=True, max_length=15, required=False)

    def restore_object(self, attrs, instance=None):
        """
        Create or update a new snippet instance, given a dictionary
        of deserialized field values.

        Note that if we don't define this method, then deserializing
        data will simply return a dictionary of items.
        """
        if instance:
            # Update existing instance
            instance.id = attrs.get('id', instance.id)
            instance.cod_equip = attrs.get('cod_equip', instance.cod_equip)
            instance.des_equip = attrs.get('desc_equip', instance.desc_equip)
            return instance
        # Create new instance
        return Equipamento(**attrs)

class ColaboradorSerializer(serializers.Serializer):
    id = serializers.IntegerField(read_only=True)
    cod_colab = serializers.IntegerField(validators=[UniqueValidator(queryset=Colaborador.objects.all())])
    nome_colab = serializers.CharField(max_length=30)

    def restore_object(self, attrs, instance=None):
        """
        Create or update a new snippet instance, given a dictionary
        of deserialized field values.

        Note that if we don't define this method, then deserializing
        data will simply return a dictionary of items.
        """
        if instance:
            # Update existing instance
            instance.id = attrs.get('id', instance.id)
            instance.cod_colab = attrs.get('cod_colab', instance.cod_colab)
            instance.nome_colab = attrs.get('nome_colab', instance.nome_colab)
            return instance
        # Create new instance
        return Colaborador(**attrs)

class ApontamentoSerializer(serializers.Serializer):
    id = serializers.IntegerField(read_only=True)
    criado = serializers.DateTimeField(read_only=True)
    apont_inicio = serializers.TimeField()
    apont_fim = serializers.TimeField()
    duracao = serializers.TimeField()
    equipamento = serializers.PrimaryKeyRelatedField(queryset=Equipamento.objects.all())
    colaborador = serializers.PrimaryKeyRelatedField(queryset=Colaborador.objects.all())
    propriedade = serializers.PrimaryKeyRelatedField(queryset=Propriedade.objects.all())
    m_parada = serializers.PrimaryKeyRelatedField(queryset=MotivoParada.objects.all())

    def restore_object(self, attrs, instance=None):
        """
        Create or update a new snippet instance, given a dictionary
        of deserialized field values.

        Note that if we don't define this method, then deserializing
        data will simply return a dictionary of items.
        """
        if instance:
            # Update existing instance
            instance.id = attrs.get('id', instance.id)
            instance.criado = attrs.get('criado', instance.criado)
            instance.apont_inicio = attrs.get('apont_inicio', instance.apont_inicio)
            instance.apont_fim = attrs.get('apont_fim', instance.apont_fim)
            instance.duracao = attrs.get('duracao', instance.duracao)
            instance.equipamento = attrs.get('equipamento', instance.equipamento)
            instance.colaborador = attrs.get('colaborador', instance.colaborador)
            instance.propriedade = attrs.get('propriedade', instance.propriedade)
            instance.m_parada = attrs.get('m_parada', instance.m_parada)
            return instance
        # Create new instance
        return Apontamento(**attrs)

class PropriedadeSerializer(serializers.Serializer):
    id = serializers.IntegerField(read_only=True)
    cod_prop = serializers.IntegerField(validators=[UniqueValidator(queryset=Propriedade.objects.all())])
    desc_prop = serializers.CharField(max_length=30)

    def restore_object(self, attrs, instance=None):
        """
        Create or update a new snippet instance, given a dictionary
        of deserialized field values.

        Note that if we don't define this method, then deserializing
        data will simply return a dictionary of items.
        """
        if instance:
            # Update existing instance
            instance.id = attrs.get('id', instance.id)
            instance.cod_prop = attrs.get('cod_prop', instance.cod_prop)
            instance.des_prop = attrs.get('desc_prop', instance.desc_prop)
            return instance
        # Create new instance
        return Propriedade(**attrs)

class MotivoParadaSerializer(serializers.Serializer):
    id = serializers.IntegerField(read_only=True)
    cod_mparada = serializers.IntegerField(validators=[UniqueValidator(queryset=MotivoParada.objects.all())])
    desc_mparada = serializers.CharField(max_length=30)

    def restore_object(self, attrs, instance=None):
        """
        Create or update a new snippet instance, given a dictionary
        of deserialized field values.

        Note that if we don't define this method, then deserializing
        data will simply return a dictionary of items.
        """
        if instance:
            # Update existing instance
            instance.id = attrs.get('id', instance.id)
            instance.cod_mparada = attrs.get('cod_mparada', instance.cod_mparada)
            instance.des_mparada = attrs.get('desc_mparada', instance.desc_mparada)
            return instance
        # Create new instance
        return MotivoParada(**attrs)
url.py

from django.conf.urls import url
# from snippets.views import EquipamentoList, ColaboradorList, ColaboradorDetail
from snippets import views
from rest_framework.urlpatterns import format_suffix_patterns

urlpatterns = [
#    url(r'^snippets/$', views.snippet_list),
 #   url(r'^snippets/(?P<pk>[0-9]+)/$', views.snippet_detail),
    # url('^equipamento/(?P<id>.+)/$', EquipamentoList.as_view()),
    #url('^colab/(?P<id>.+)/$', ColaboradorList.as_view()),
    url('^colab/$', views.ColaboradorList.as_view()),
    url('^colab_add/(?P<pk>[0-9]+)/$', views.ColaboradorDetail.as_view()),
]

urlpatterns = format_suffix_patterns(urlpatterns)I find message return in google, not find solv problem?
救命啊。 我的代码不是post值是什么?
我需要有关解决方案更正的帮助。

错误消息非常简单。序列化程序使用restore_对象方法,Rest Framework 3中不推荐使用该方法。将Django Rest Framework版本降级为2.x,或者建议重写代码,使其与Rest Framework的最新版本兼容。

错误消息中包含了所需的全部内容。。。