Используя django-filebrowser и FileBrowserField
Я пытаюсь назначить параметр directory
на основе ключа в самой модели.Так, используя пример блога, если бы я сохранял фотографии для разных постов, фотографии были бы в каталогах, названных в честь идентификатора блога.Поэтому, если MEDIA_ROOT
было /some/path/to/media/filebrowser_files/
, я хочу динамически присвоить параметру directory
значение MEDIA_ROOT+str(model_pk)
. В этот момент я попытался сделать что-то похожее на следующее, но не понимаю, какполучить идентификатор текущего объекта.(Делает исключение NotNotExist с «Не предоставлено исключение»). Я знаю, что ошибка существует при попытке использовать self.page, но я не знаю, как это сделать правильно.Может ли кто-нибудь дать некоторое представление о том, где моя логика имеет недостатки и что я могу сделать, чтобы это исправить?Большое спасибо.
class PageImage(models.Model):
page = models.ForeignKey(Page)
page_photo = FileBrowseField("Image", max_length=200, blank=True, null=True)
def __init__(self, *args, **kwargs):
super(PageImage, self).__init__(*args, **kwargs)
path = settings.MEDIA_ROOT+'pages/unfiled/'
if self.page:
path = settings.MEDIA_ROOT+'pages/'+str(self.page)+'/'
if not os.path.exists(path):
os.makedirs(path)
self._meta.get_field_by_name("page_photo")[0].directory = path