Создание динамического пути при загрузке изображений - PullRequest
0 голосов
/ 06 августа 2011

Я пытаюсь создать динамический путь, когда мои пользователи загружают изображения. Это работает примерно так:

Вид:

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 таким образом?

Спасибо.

1 Ответ

2 голосов
/ 06 августа 2011

Использовать обратный вызов (вызываемый): 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)
...