2011-08-05 3 views
0

사용자가 이미지를 업로드 할 때 사용할 동적 경로를 만들려고합니다. 그것은는 다음과 같이 작동합니다이미지를 업로드 할 때 동적 경로 만들기

보기 :

photo = Photo(...) 
photo.save() 

photo.original.save(filename, content) 

모델 :

album = models.ForeignKey(Album) 
original = models.ImageField(upload_to="photos/%s/o" % str(album.id), max_length=200) 

하지만이 작업을 수행 할 때, 장고 방법은 말한다.

Exception Value:  
'ForeignKey' object has no attribute 'id' 

어떻게 이런 방식으로 ForeignKey 객체의 모델 멤버에 액세스 할 수 있습니까?

감사합니다.

답변

2

(호출) 콜백 사용 : 그것에 대해이야 https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.FileField.upload_to

def fancy_path(instance, filename): 
    return 'fancy_path/file_%s.xml' % self.instance.album.id 

original = models.ImageField(upload_to=fancy_path, max_length=200) 
+1

합니다. @ 윌리엄이 머리에 못을 박았다. 이미지를 처리하기 전에 개체에 해당 앨범에 대한 값이 있는지 확인해야합니다. –

+0

그래, 나는 그 부분에 조심 했어. 따라서 위의 이중 저장. –

관련 문제