это продолжение моего вопроса здесь: Форма ImageField / FileField Django В настоящее время невозможно обрезать путь к имени файла
В моем приложении Django есть поле изображения, загруженное на S3. После обрезки пути к файлу изображения изображение недоступно, поскольку URL-адрес обрезан. Как я могу обрезать дисплей, но не обрезать путь?
Мне удается обрезать дисплей, показывающий имя файла, как это
class CustomClearableFileInput(ClearableFileInput):
def get_context(self, name, value, attrs):
logging.debug("%s",name)
logging.debug("%s",value)
value.name = path.basename(value.name)
context = super().get_context(name, value, attrs)
return context
class CompanySettingEdit(forms.ModelForm):
company_logo = forms.ImageField(widget=CustomClearableFileInput)
это вывод:
https://imgur.com/a/M42Mz <-- display correct
https://bucketname.s3.amazonaws.com/media/certiport_logo.png <-- invalid url
Если не обрезать:
class CustomClearableFileInput(ClearableFileInput):
def get_context(self, name, value, attrs):
logging.debug("%s",name)
logging.debug("%s",value)
# value.name = path.basename(value.name) <-- remove this
context = super().get_context(name, value, attrs)
return context
class CompanySettingEdit(forms.ModelForm):
company_logo = forms.ImageField(widget=CustomClearableFileInput)
это вывод:
https://imgur.com/a/rGi8f <-- display incorrect
https://bucketname.s3.amazonaws.com/media/company_logo/15/certiport_logo.png <--valid url
моя цель:
display: certiport_logo.png
url: https://bucketname.s3.amazonaws.com/media/company_logo/15/certiport_logo.png
Как я могу этого добиться?
/company_logo/15/certiport_logo.png
и/company_logo/14/certiport_logo.png
На что тогда указывал бы/media/certiport_logo.png
? - person Thomas Jiang   schedule 25.01.2018CompanySetting
, которое возвращает обрезанный URL-адрес и позволяет полюcompany_logo
быть фактическим полным URL-адресом? - person Thomas Jiang   schedule 26.01.2018