Django Rest_framework e react.js (Salva imagens)

111 views
Skip to first unread message

Laryssa Gomes

unread,
Apr 29, 2021, 7:40:08 AM4/29/21
to Django Brasil
oi pessoal estou tentando salva uma imagens no banco usando django rest, porém o campo imagem sempre e enviado vazio para o django.
não sei se o erro está na rota ou se ta na parte do serialize.

@api_view(['GET', 'POST'])
def usuarios(request):
    if request.method == 'GET':
        data = Usuario.objects.all()
        serializer = UsuarioSerializer(data, context={'request': request} ,many=True)
        return Response({'data': serializer.data})

    elif request.method == 'POST':
        serializer = UsuarioSerializer(data=request.data)
        print(request.data)
        print(serializer.is_valid())
        print(serializer)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
retorno no cmd :
{'first_name': 'Laryssa', 'username': 'lary...@gmail.com', 'img': {}, 'email': 'lary...@gmail.com', 'password': 'KSB9mW8xprMANVW'}
react.js axios 

 createUser(users){
        
        api.post('/api/users/', users)
    }

Quando adiciono o headres a minha rota nada e enviado.
            headers: {
                "Content-Type": `multipart/form-data; boundary=${users._boundary}`,
            }
          }
Agradeço desde já qualquer ajuda, to a uns dias tentando isso mais nada ainda
        
        
 

André Baptista

unread,
Apr 29, 2021, 8:10:30 AM4/29/21
to django...@googlegroups.com
Bom dia, vc tentou usar request.FILES['imagem'] ?

--
Você recebeu essa mensagem porque está inscrito no grupo "Django Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para django-brasi...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/django-brasil/94e3ae25-6c41-4ccf-a931-c0f17aca36bfn%40googlegroups.com.


--

att,
André P. Baptista
+55 (55) 9167.9256
Dev

Isak Ruas

unread,
Apr 29, 2021, 9:37:30 AM4/29/21
to django...@googlegroups.com
Tive problemas para fazer upload de arquivos usando o react-native, na época em questão, tive que configurar axios corretamente.

Utilizando o rest_framework, minha views estava configurada desta forma:

E minha função de upload, para que funcionasse, ficou configurada desta assim:

async function uploadImage(){

    let token = null;

    token = await AsyncStorage.getItem('user_token')

    const data = new FormData();

    if (imgData.type !== 'image') {
        return;
    }

    let uri = imgData.uri;

    let name = uri.split('/').slice(-1)[0];

    let type = 'image/' + name.split('.').slice(-1)[0];

    console.log(uri)

    console.log(name)

    console.log(type)

    data.append('upload', {
      uri: uri,
      type: type,
      name: name,
    });

    axios({
      url    : 'http://192.168.0.100:8000/api/v1/upload/',
      method : 'POST',
      data   : data,
      headers: {
        'Accept': 'application/json',
        'Content-Type': 'multipart/form-data',
        'Authorization': 'Token ' + token
      }
    })

    .then(function (response) {
      console.log(response);
    })

    .catch(function (error) {
      console.log('Não foi possível realizar o upload');
    })

}

Espero que isso lhe dê um encaminhamento para resolver o seu problema.

Att, 

Isak Paulo de Andrade Ruas, (Currículo Lattes) 

Acadêmico do curso Licenciatura em Matemática ofertado no Instituto Federal do Norte de Minas (IFNMG) - Campus Januária, membro da Sociedade Brasileira de Matemática (SBM), membro da Câmara de Ensino, Pesquisa e Extensão (CEPE) do IFNMG, membro do Colegiado das Licenciaturas (CL) do IFNMG, membro do Colegiado Escolar dos Cursos de Graduação (CECG) do IFNMG - Campus Januária e membro da Subcomissão da Comissão Própria de Avaliação (sCPA) do IFNMG - Campus Januária. Fez aperfeiçoamento em Fundamentos Teóricos do Pensamento Matemático, Robótica para Jovens, Cálculo de Funções e Geometria Vetorial pela Faculdades Metropolitanas de São Paulo (FAMESP) e aperfeiçoamento em Inglês Básico pelo IFNMG - Campus Januária. Atualmente é bolsista do Programa Institucional de Bolsas de Iniciação em Desenvolvimento Tecnológico e Inovação (PIBITI), conforme edital nº 76, de 20 de julho de 2020, do IFNMG - Campus Januária, com projeto intitulado 'Desenvolvimento de um aplicativo mobile para elaboração de avaliações de matemática', registrado no Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq) sob número 145794/2020-2. Em 2019 iniciou o Trabalho de Conclusão de Curso (Graduação em Matemática) intitulado 'Desenvolvimento e validação de um sistema hipermídia para elaboração de avaliações de matemática' sob orientação do Prof. Dr. Josué Antunes de Macêdo. 
(Currículo Lattes)




--

Laryssa Gomes

unread,
Apr 29, 2021, 12:55:31 PM4/29/21
to django...@googlegroups.com
já tentei ,dá esse erro
Traceback (most recent call last):
  File "C:\Users\jmbtj\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\django\utils\datastructures.py", line 76, in __getitem__
    list_ = super().__getitem__(key)
KeyError: 'imagem'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

Reply all
Reply to author
Forward
0 new messages