python - Invalid file error when trying to open file - Requests and Django -


i'm using requests module django , trying send file form when "invalid file :" error when try open file. think it's trying open filename string instead of opening actual file. how can go opening actual file form instead of trying open filename, can send payload?

class adddocumentview(loginrequiredmixin, successmessagemixin, createview):     login_url = reverse_lazy('users:login')     form_class = fileuploadform     template_name = 'docman/forms/add-document.html'     success_message = 'document added'      def form_valid(self, form):         pk = self.kwargs['pk']         user = get_object_or_404(user, pk=pk)         file = form.save(commit=false)         file.user = user         if not self.post_to_server(file, user.id):             file.delete()         return super(adddocumentview, self).form_valid(form)      def post_to_server(self, file, cid):         url = 'https://example.herokuapp.com/api/files/'         headers = {'token': '333334wsfsecrettoken'}          # error here when trying open file         payload = {'file': open(file, 'rb'), 'client_id': cid}         r = requests.post(url, data=payload, headers=headers)         print(r.text)         if r.status_code == requests.codes.ok:             return true         else:             return false 

open(file, 'rb') receiving django model object file = form.save(commit=false) line, not file. send original file. can like

file = self.request.files.get('name') self.post_to_server(file, user.id) 

edit:

no need call open on file, it's open. open(file, 'rb') takes file path. file open above lines use that. best practice

files = {'file': file} r = requests.post(url, files=files, data=payload) 

Comments