4

特定のファイルのみを受け入れるDjangoにオーディオおよびビデオファイルフィールドを追加するにはどうすればよいですか?

1つの例で親切に説明してください。

models.py :

class Post(models.Model):
     audio_file = models.FileField(upload_to = u'mp3/', max_length=200)
     video_file = models.FileField(upload_to = u'video/', max_length=200)

フォーム.py

class PostForm(forms.Form):
     audio_file = forms.FileField( label = _(u"Audio File" ))
     video_file = forms.FileField( label = _(u"Video File" ))
4

2 に答える 2

4

cleanフォームのメソッドで簡単に確認できます

class FileUploadForm( forms.Form ):
    audio_file = forms.FileField( label = _(u"Audio File" ))
    ...

def clean( self ): 
    cleaned_data = self.cleaned_data
    file = cleaned_data.get( "audio_file" )
    file_exts = ('.mp3', ) 

    if file is None:

        raise forms.ValidationError( 'Please select file first ' ) 

    if not file.content_type in settings.UPLOAD_AUDIO_TYPE: #UPLOAD_AUDIO_TYPE contains mime types of required file

        raise forms.ValidationError( 'Audio accepted only in: %s' % ' '.join( file_exts ) ) 


    return cleaned_data
于 2012-04-23T05:47:52.863 に答える
2

これらのリンクが役立つかもしれません:

サーバー側の FileField で特定のファイル タイプのみを受け入れる

https://docs.djangoproject.com/en/dev/topics/http/file-uploads/#uploadedfile-objects

于 2012-04-23T03:47:37.727 に答える