ImageField / FileField Django 表单目前无法 trim 文件名的路径
ImageField / FileField Django form Currently unable to trim the path to filename
我有一个存储在 AWS S3 中的 ImageField(类似于 FileField)。在表单中,它有这个显示图像文件路径的 "Currently" 标签。我想 trim 只显示文件名。
参考Django : customizing FileField value while editing a model中的最新答案,我仍然无法正常工作。
显示 "Currently" 文件路径名如下:
https://imgur.com/a/xkUZi
form.py
class CustomClearableFileInput(ClearableFileInput):
def get_template_substitution_values(self, value):
"""
Return value-related substitutions.
"""
logging.debug("CustomClearableFileInput %s",value) <-- it never came here
return {
'initial': conditional_escape(path.basename(value.name)),
'initial_url': conditional_escape(value.url),
}
class CompanySettingEdit(forms.ModelForm):
display_companyname = forms.CharField(max_length=50, required=True)
company_logo = forms.ImageField(widget=CustomClearableFileInput)
class Meta:
model = Company
fields = ("display_companyname","company_logo")
model.py
class Company(models.Model):
display_companyname = models.CharField(max_length=50)
company_logo = models.ImageField(upload_to=upload_to('company_logo/'), blank=True, null=True, storage=MediaStorage())
我怎么能有这样的东西:目前:filename.jpg
仅供参考 - ImageField / FileField,我都试过了它没有什么区别。
我正在使用 Django==1.11.7
在 Django 1 中。11.x get_template_substitution_values
已弃用。 CustomClearableFileInput
的新实现如下:
class CustomClearableFileInput(ClearableFileInput):
def get_context(self, name, value, attrs):
value.name = path.basename(value.name)
context = super().get_context(name, value, attrs)
return context
我有一个存储在 AWS S3 中的 ImageField(类似于 FileField)。在表单中,它有这个显示图像文件路径的 "Currently" 标签。我想 trim 只显示文件名。
参考Django : customizing FileField value while editing a model中的最新答案,我仍然无法正常工作。
显示 "Currently" 文件路径名如下: https://imgur.com/a/xkUZi
form.py
class CustomClearableFileInput(ClearableFileInput):
def get_template_substitution_values(self, value):
"""
Return value-related substitutions.
"""
logging.debug("CustomClearableFileInput %s",value) <-- it never came here
return {
'initial': conditional_escape(path.basename(value.name)),
'initial_url': conditional_escape(value.url),
}
class CompanySettingEdit(forms.ModelForm):
display_companyname = forms.CharField(max_length=50, required=True)
company_logo = forms.ImageField(widget=CustomClearableFileInput)
class Meta:
model = Company
fields = ("display_companyname","company_logo")
model.py
class Company(models.Model):
display_companyname = models.CharField(max_length=50)
company_logo = models.ImageField(upload_to=upload_to('company_logo/'), blank=True, null=True, storage=MediaStorage())
我怎么能有这样的东西:目前:filename.jpg
仅供参考 - ImageField / FileField,我都试过了它没有什么区别。 我正在使用 Django==1.11.7
在 Django 1 中。11.x get_template_substitution_values
已弃用。 CustomClearableFileInput
的新实现如下:
class CustomClearableFileInput(ClearableFileInput):
def get_context(self, name, value, attrs):
value.name = path.basename(value.name)
context = super().get_context(name, value, attrs)
return context