仅在Django表单字段中的文件名

时间:2018-07-21 20:39:19

标签: python django

我有一个包含文件字段的模型,并且正在使用模型窗体添加实例。当我来修改实例时,表单会显示当前文件并显示文件路径,即库/文件名。

有没有一种方法可以只显示文件名?

谢谢

2 个答案:

答案 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 %}

这将链接更改为仅显示文件名