Как загрузить изображение в django из входного файла html
Я разрабатываю веб-сервис на django с фронтендом на react. Я столкнулся с проблемой, что не могу загрузить изображение в django. Ниже приведен код моего компонента, где я пытаюсь загрузить его:
export function ProviderRegistration(){
const[logoField, setLogoField] = useState()
const token = useSelector((state) => state.user.token)
const [cookie, setCookie] = useCookies(['auth'])
const confirm = () => {
axios.post(`/providers/?username=${cookie.auth.login}`,
{
photo : logoField
},
{ "headers" : { "Authorization" : "token " + token }})
.then(res => console.log(res))
.catch(err => console.log(err))
}
return(
<div className="registration-provider-container">
<div className="registration-title">Provider registration</div>
<input type="file" className="registration-logo-add" onChange={(e) => setLogoField(e.target.value)}/>
<button className="registration-confirm" onClick={() => confirm()}>Confirm</button>
</div>
)}
И конечная точка, обрабатывающая этот запрос
class Providers(viewsets.ModelViewSet):
filterset_class = ProvidersFilter
queryset = Provider.objects.all()
permission_classes = [IsAuthenticatedOrReadOnly, IsProviderPermission, IsOneToOneProviderPermission]
def get_serializer_class(self):
if self.action == 'list':
return GetProviderSerializer
else:
return PutProviderSerializer
def create(self, request):
username = request.GET.get('username', '')
user = User.objects.get(username=username).pk
request.data.update({'user' : user})
print(request.data)
return super().create(request)
Когда я пытаюсь загрузить изображение, django выдает следующую ошибку:
"The submitted data was not a file. Check the encoding type on the form."
И я не нашел способа корректно загрузить изображение в django с помощью Ajax. Я также вывожу то, что мой браузер посылает на сервер:
{photo : 'C:\\fakepath\\magnit.jpg'}