Get 'str' into Djano forms.FileField()

Viewed 107

I'm uploading without a form. My user has a FileField if I'm uploading via <input type...> i have no problem. But this is not that handy for my purpose.

views.py

    def uploadaction2(request):
        f = forms.FileField() # this is my idea
        data = json.loads(request.body)
        # f.clean("data['data']") # error: file_name = data.name AttributeError: 'str' object has no attribute 'name'
        logger.error(type(data['data'])) #gives <class 'str'> and without the type the string that i want to save
        with open('newfile', 'w') as file:
            file.write(data['data'])
        request.user.file = file 
        request.user.save() # i get no error until this part

Error

Internal Server Error: ....  in pre_save
    if file and not file._committed:
AttributeError: '_io.TextIOWrapper' object has no attribute '_committed'

I think i have to convert the json string to a forms.FileField() by i've no idea how this could be done.

1 Answers
    def uploadaction2(request):
        file = request.FILES.get('file') # set name to input
        request.user.file = file
        request.user.save()
Related