복붙노트

[PYTHON] 장고에서 FileField 로컬 파일을 할당하는 방법?

PYTHON

장고에서 FileField 로컬 파일을 할당하는 방법?

내 디스크에서 FileField 파일을 할당하려고했지만이 오류가 있습니다 :

AttributeError : 'str'객체에 'open'속성이 없습니다.

내 파이썬 코드 :

pdfImage = FileSaver()
pdfImage.myfile.save('new', open('mytest.pdf').read())

내 models.py

class FileSaver(models.Model):

    myfile = models.FileField(upload_to="files/")

    class Meta:
        managed=False

당신의 도움에 미리 감사드립니다

해결법

  1. ==============================

    1.Django는 자체 파일 형식을 사용합니다 (기능이 향상되었습니다). 어쨌든 Django의 파일 유형은 데코레이터처럼 작동하므로 Django API의 요구 사항을 충족시키기 위해 기존 파일 객체를 감싸기 만하면됩니다.

    Django는 자체 파일 형식을 사용합니다 (기능이 향상되었습니다). 어쨌든 Django의 파일 유형은 데코레이터처럼 작동하므로 Django API의 요구 사항을 충족시키기 위해 기존 파일 객체를 감싸기 만하면됩니다.

    from django.core.files import File
    
    local_file = open('mytest.pdf')
    djangofile = File(local_file)
    pdfImage.myfile.save('new', djangofile)
    local_file.close()
    

    물론 다음을 작성하여 파일을 즉석에서 꾸밀 수 있습니다 (한 줄 줄임).

    pdfImage.myfile.save('new', File(local_file))`.
    
  2. from https://stackoverflow.com/questions/3501588/how-to-assign-a-local-file-to-the-filefield-in-django by cc-by-sa and MIT license