我有一个包含文件字段的模型,并且正在使用模型窗体添加实例。当我来修改实例时,表单会显示当前文件并显示文件路径,即库/文件名。
有没有一种方法可以只显示文件名?
谢谢
答案 0 :(得分:0)
默认情况下,FileField
将使用FileInput
小部件,该小部件会生成<input type="file">
HTML标签。我认为您无法从Django更改默认的“显示完整路径”行为,请选中this post。
但是,您可以像这样自定义ModelForm
中的内容:
class YourForm(ModelForm):
class Meta:
...
widgets = {
'your_file_attribute': FileInput(attrs={'html_attribute': value}),
}
答案 1 :(得分:0)
我通过使用javascript解决了这个问题。
我在模型中添加了以下内容。
def filename(self):
return os.path.basename(self.file.name)
然后将其添加到模板中的javascript中
{% block javascript %}
<script>
{% if part.file %}
$('[href="{{ part.file.url }}"]').html("{{ part.filename }}");
{% endif %}
</script>
{% endblock %}
这将链接更改为仅显示文件名