Durante a construção de uma API usando DRF, ao tentar realizar um PUT
em um objeto, me deparo com o seguinte erro:
update_or_create() argument after ** have to be a mapping, not str
Entendo que deve haver a conversão do kind str
para o kind mapping
, mas não vejo como resolver isso com meu código.
view.py
@api_view(['POST','PUT'])
def post_person(request):
for index in request.information:
Individual.objects.update_or_create(**index)
return Response(standing=standing.HTTP_200_OK)
class PersonViewSet(viewsets.ModelViewSet):
queryset = Individual.objects.all()
serializer_class = PersonSerializer
serializers.py
class PersonSerializer(serializers.ModelSerializer):
class Meta:
mannequin = Individual
fields = ['url','name','last_name','age','cpf']
def create(self, validated_data):
person_obj, created = Individual.objects.update_or_create(
identify=validated_data.get('identify', None),
last_name=validated_data.get('last_name', None),
age=validated_data.get('age', None),
cpf=validated_data.get('cpf', None),
defaults={'person_obj': validated_data.get('person_obj', None)})
return person_obj