Only accept a certain file type in FileField, server-side

前端 未结 10 648
日久生厌
日久生厌 2020-11-27 02:56

How can I restrict FileField to only accept a certain type of file (video, audio, pdf, etc.) in an elegant way, server-side?

10条回答
  •  迷失自我
    2020-11-27 03:34

    Additionally i Will extend this class with some extra behaviour.

    class ContentTypeRestrictedFileField(forms.FileField):
        ...
        widget = None
        ...
        def __init__(self, *args, **kwargs):
            ...
            self.widget = forms.ClearableFileInput(attrs={'accept':kwargs.pop('accept', None)})
            super(ContentTypeRestrictedFileField, self).__init__(*args, **kwargs)
    

    When we create instance with param accept=".pdf,.txt", in popup with file structure as a default we will see files with passed extension.

提交回复
热议问题