gpt4 book ai didi

python - ImageField/FileField Django 表单 目前无法修剪文件名的路径

转载 作者:行者123 更新时间:2023-12-01 02:21:47 25 4
gpt4 key购买 nike

我有一个存储在 AWS S3 中的 ImageField(类似于 FileField)。在表单中,它有一个“当前”标签,显示图像文件路径。我想修剪并仅显示文件名。

引用Django : customizing FileField value while editing a model中的最新答案,我仍然无法让它工作。

它显示“当前”,文件路径名如下: /image/WeSoi.jpg

表单.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")

模型.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

关于python - ImageField/FileField Django 表单 目前无法修剪文件名的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47887158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com