2016-10-25 7 views
1

.exe 파일을 저장하는 모델이 있습니다. 그 파일을 모델에서 가져 와서 모델을 변경하지 않고 특정 폴더에 붙여 넣기를 원합니다. 어떤 아이디어?Django에서 파일을 모델의 디스크로 옮기는 방법은 무엇입니까?

모델은 다음과 같이이다 :

내가 모델 자체가 모든 연결을 단절 모델에서 프로그램 설치를 추출 할 수 다음 모델에 새 파일을 둘 필요가
class Program(models.Model): 
    program_name = models.CharField(...) 
    program_version = models.CharField(...) 
    program_installer = models.FileField(...) 

(오래된 설치 프로그램을 별도의 장소에 유지하면서).

답변

2

기본 사용 django.core.files.storage.FileSystemStorage에 의해 FileField, 그래서 파일 이름으로 문자열 (파일 경로) 아니라 파일 자체가 포함되어 있습니다. 해당 파일 이름 (경로)을 사용하여 필요한 대상에 파일을 복사하십시오. 여기 https://docs.djangoproject.com/en/dev/topics/files/#using-files-in-models에서

:

당신이 FileField와 나 ImageField 사용, 장고는 해당 파일을 처리하는 데 사용할 수있는 API 세트를 제공합니다.

:

from django.db import models 

class Car(models.Model): 
    name = models.CharField(max_length=255) 
    price = models.DecimalField(max_digits=5, decimal_places=2) 
    photo = models.ImageField(upload_to='cars') 

모든 자동차 인스턴스는 첨부 된 사진의 세부 사항에 을 얻을하는 데 사용할 수있는 사진의 속성이됩니다

는 사진을 저장하기 위해 ImageField를 사용하여, 다음과 같은 모델을 고려

>>> car = Car.objects.get(name="57 Chevy") 
>>> car.photo 
<ImageFieldFile: chevy.jpg> 
>>> car.photo.name 
'cars/chevy.jpg' 
>>> car.photo.path 
'/media/cars/chevy.jpg' 
>>> car.photo.url 
'http://media.example.com/cars/chevy.jpg' 
+0

감사합니다. 그건 내 첫 번째 생각 이었지만 더 좋은 방법이 있다고 생각했습니다. –

관련 문제