django-filebrowser 및 FileBrowserField
을 사용하여 directory
매개 변수를 모델 자체의 키를 기반으로 할당하려고합니다. 따라서 블로그 예제를 사용하여 여러 게시물에 대해 사진을 저장하는 경우 사진은 블로그 ID 이름의 디렉토리에 저장됩니다. MEDIA_ROOT
가 있다면 그래서 /some/path/to/media/filebrowser_files/
나는 동적으로 directory
있었던 파라미터 나는 다음을 닮은 뭔가를 시도이 시점에서 MEDIA_ROOT+str(model_pk)
Django filebrowser, FileBrowserField의 모델 별 디렉토리 매개 변수
로 할당 할, 그러나 현재 개체의 ID를 얻는 방법을 이해하지 않습니다. ("No exception supplied"로 DoesNotExist 예외) 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
답변 해 주셔서 감사합니다. 페이지 모델에는 특별한 것이 없습니다. 문제는 내가 슈퍼 init 및 print (str (self.page)) 호출을 제외한 모든 것을 제거 할 수 있다고 믿는자가 사용하는 것입니다. 거기에 예외가 제공되지 않는다고 말하는 DoesNotExist 예외가 있습니다. 나에 의해 pk의 무시. – wilbbe01
업데이트 된 답변 주셔서 감사합니다. 적어도 내가하려고했던 일을하는 것을 얻지 만, 나는 내가 어떻게하고 있는지 다시 생각할 필요가 있다고 생각한다. '디렉토리'설정은 이미지가 이미 업로드 되었기 때문에 저장 작업에별로 도움이되지 않습니다 ... 그래서 업로드 된 이미지를 저장하는 대신 어디에서나 옮길 필요가 있습니다. 파일 관리 ... 재미. 다시 한번 감사드립니다. – wilbbe01