레거시 DB와 이미지가있는 폴더가 있고 특정 테이블의 일부 행에 의해 참조되는 폴더가 있고 그 데이터를 새로운 데이터베이스로 마이그레이션해야합니다. 장고 모델. 특정 문제는 업로드를 "수행"하는 방법이지만 관리 명령에서 수행하는 것입니다.레거시 DB를 이미지 파일로 Django로 마이그레이션
참조 된 필드가있는 테이블을 해당 모델로 마이그레이션 할 때도 모델의 이미지 필드를 설정해야하며 그에 따라 ImageField
의 upload_to
매개 변수에 따라 파일 이름을 처리해야합니다.
파일 경로 또는 파일 설명자에서 이미지 필드를 프로그래밍 방식으로 채우는 방법은 무엇입니까?
나는 이것에 대해 생각해 봤지만 경로가 올바르지 않기 때문에 여전히 문제가 남아 있습니다. 또한, 가져 오기 작업에 따라'upload_to' 매개 변수에 따라 새 파일 이름을 다시 생성해야합니다. –
ImageField는 실제로는 CharField입니다. 따라서 단순히 문자열 인 것처럼 값을 조작 할 수 있습니다. 예. do image_field = image_field.replace ("old_path /", "new_path /") – benjaoming
그게 내가 지금하고있는 일이야. 이전 필드 값은 이미지 파일의 기본 이름 만 포함하므로 생성되는 인스턴스와 함께 모델에 첨부 된 ImageField 인스턴스의 'upload_to' 속성에 해당 값을 전달합니다. 그런 다음 원본 파일 내용 (모든 이미지를 포함하는 디렉토리는 스크립트의 인수)을'upload_to' 호출의 반환 값으로 복사하고,'MEDIA_ROOT' 설정에 합류시킵니다. 작동하지만 클라우드 서비스와 같은 다른 종류의 파일 저장소와 호환됩니까? –