2011-06-17 5 views
1

私はFileFieldに(文書を)かかりクラスファイルと呼ばれるモデルがあります:request.FILES [「ファイル」]が存在しないため、ファイルアップロードフォームが提出された後にクラスファイルのインスタンス以下保存しようとしDjangoでオブジェクトのFileFieldを変更するにはどうすればよいですか?

class ClassFile(models.Model): 

    timestamp = models.DateTimeField(auto_now_add=True, editable=False) 
    document = models.FileField(upload_to="classFiles/%Y/%m/%d/") 
    description = models.TextField('File description', max_length=500) 
    shown = models.BooleanField('Allow Students to view this', default=True) 
    course = models.ForeignKey(Course, related_name='files', editable=False) 
    uploader = models.ForeignKey(User, related_name='class_files_uploaded') 

は失敗します明らかに:

f = ClassFile(
        document = request.FILES['file'], 
        description = form.cleaned_data['description'], 
        shown = form.cleaned_data['shown'], 
        course = course, 
        uploader = request.user, 
       ) 
f.save() 

私はこのオブジェクトを適切な方法で保存していたのだろうかと思っていました。 request.FILES ['file']は正しいタイプですか?ありがとうございました。

答えて

0

ファイルのキーはフィールド名document(ないfile)であり、それはcleaned_dataを使用することをお勧めします:

document = form.cleaned_data['document'] 

form.cleaned_data['document'](またはrequest.FILES['document']UploadedFileオブジェクトを返します。

+0

ありがとうございました! – dangerChihuahua007

関連する問題