Почему Django не принимает отправку файла из приложения React Native?

Я использую Django для внутреннего сервера и React Native для мобильного приложения Я пытаюсь загрузить изображение оттуда, но оно выдает ошибку 500 сервера.

Views.py форма Django

@api_view(['POST'])
def setFakeProfile(request):
    if request.method=='POST':
        user = Token.objects.get(key = request.META.get('HTTP_AUTHORIZATION').split(' ')[1]).user
        profile = Profile.objects.get(user=user)
        fakeProfiles = profile.fakeProfiles.filter(isProfileReadyToUse=False)
        print(request.data)
        print(request.FILES)
        if fakeProfiles.exists():
            fakeProfile = fakeProfiles[0]
            fakeProfile.displayName = request.data["displayName"]
            fakeProfile.profilePicture = request.FILES.get('profilePicture')
            fakeProfile.isProfileReadyToUse = True
            fakeProfile.save()
            return Response({'status':'success', 'id':fakeProfile.id})
        else:
            return Response({'status':'failed', "message":"First select the chating platform."})


        return Response({
                'status':'success',
            })
        
    return Response({'status':'failed'})

Ошибка, которую я получаю, существует. Я знал об этой ошибке, а также перепробовал множество способов ее устранения, но до сих пор не знаю, как ее устранить.

Давайте посмотрим на код React Native.

const [displayName, setDisplayName] = useState("");
    const [displayImage, setDisplayImage] = useState(null);
    const [error, setError] = useState('');

    const pickImage = async () => {
        // No permissions request is necessary for launching the image library
        let result = await ImagePicker.launchImageLibraryAsync({
          mediaTypes: ImagePicker.MediaTypeOptions.All,
          allowsEditing: true,
          aspect: [1, 1],
          quality: 1,
        });
    
        console.log(result);
    
        if (!result.cancelled) {
            setDisplayImage({
                ...result,
                uri: Platform.OS === 'ios' ? result.uri.replace('file://', '') : result.uri,
            });
        }
      };


    const onSubmit = async () =>{
        console.log("submit");

        const formData = new FormData();

        formData.append('displayName', displayName);
        formData.append('profilePicture', displayImage);


        await axios.post(
                `${baseUrl}setFakeProfile/`,
                formData,
                {
                    headers: {
                        // 'Content-Type': 'multipart/form-data',
                        // 'Accept': 'multipart/form-data',
                        'Content-Type': 'application/json',
                        'Accept': "application/json",
                        'Authorization': `Token ${await getData('token')}` 
                    }  
                }        
            ).then(res=>{
                if (res.data.status==="success"){
                    dispatch(setFakeProfileIdToOpen(res.data.id));
                    navigation.navigate('FakeAccount');
                }else{
                    setError(res.data.message);
                    console.log(res.data.message);
                }
            }).catch(err=>console.log(err));
    }

Я также попробовал с закомментированным кодом (означает 'Content-Type': 'multipart/form-data' ), но он все еще не работает.

Вернуться на верх