1

FileField(ドキュメント)を受け取るClassFileというモデルがあります。

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')

request.FILES ['file']が明らかに存在しないため、ファイルアップロードフォームが送信された後に以下のClassFileインスタンスを保存しようとすると失敗します。

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']は正しいタイプですか?ありがとうございました。

4

1 に答える 1

0

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

document = form.cleaned_data['document']

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

于 2011-06-17T23:11:20.460 に答える