子类化django文件字段窗体小部件?

时间:2012-05-22 19:03:08

标签: python django

我上传工作得很好,但问题是,我想过滤掉所有不需要的文件类型。 我知道用html,你可以使用类似的东西:

<input type="file" name="file" accept="image/*" id="file"> <input type="submit" name="submit" value="Upload Image!">

在这种情况下,这告诉浏览器只在文件对话框中显示图像文件。

我无法弄清楚如何在Django的小部件中添加accept =“image / *”。

欢迎任何帮助!

1 个答案:

答案 0 :(得分:2)

您可以使用此处记录的小部件attrs进行更改:https://docs.djangoproject.com/en/1.3/ref/forms/widgets/#django.forms.Widget.attrs

from django import forms

class MyForm(forms.Form):    
    my_file = forms.FileField()

    def __init__(self, *args, **kwargs):
        super(MyForm, self).__init__(*args, **kwargs)
        self.fields['my_file'].widget.attrs.update({'accept': 'image/*'})

或者您可以使用类似django-widget-tweaks的内容来使用模板标签。