2013-05-12 9 views
13

私はDjangoで新しく簡単なフォームを試しています。私は定義されたファイルフィールド(schema_file)とそれのためのModelFormクラスを持つモデルクラス "Profile"を持っています。ブラウザで新しいプロファイルを作成しようとすると、ファイル選択ダイアログでファイルを選択したにもかかわらず、schema_fileフィールドに「このフィールドは必須です」というエラーが表示されますか?以下の私のクラス:ファイルがアップロードされていても「このフィールドは必須です。」

class Profile(models.Model): 
    class Meta: 
     db_table = 'target_profiles' 

    class SchemaType: 
     XML = 1 
     CSV = 2 
     XLS = 3 
     JSON = 4 
     DB = 5 
     SCHEMA_CHOICES = (
          (XML, 'XML'), 
          (CSV, 'CSV'), 
          (XLS, 'Excel'), 
          (JSON, 'JSON'), 
          (DB, 'Database'), 
         ) 

    name = models.CharField(max_length=32, unique=True) 
    description = models.CharField(max_length=128, null=True, blank=True) 
    schema_type = models.IntegerField(choices=SchemaType.SCHEMA_CHOICES, default=SchemaType.CSV) 
    schema_file = models.FileField(upload_to='schema_files', max_length=64) 


    def __unicode__(self): 
     return self.name 

class ProfileForm(forms.ModelForm): 
    class Meta: 
     model = Profile 

ビュー:

def add_profile(request): 
    if request.method == 'POST': 
     form = ProfileForm(request.POST, request.FILES) 
     if form.is_valid(): 
      cd = form.cleaned_data 
      return HttpResponseRedirect('/profiles') 
    else: 
     form = ProfileForm() 
    return render(request, 'profiles/add_profile.html', {'form': form}) 

答えて

36

あなたの見解を投稿していないとして、あなたはrequest.FILESを含めるのを忘れているので、私はそのを推測することができますが:

form = ProfileForm(request.POST, request.FILES) 

、おそらくあなたのフォームにenctype=multipart/form-dataを追加するのを忘れてしまった。

+0

申し訳ありません、元の質問 – michalv82

+0

Burhan、あなたの迅速な対応に感謝のビューを追加しました。私はあなたが言ったことを正確に逃していた。 – michalv82

+0

これは、ありがとう! –

関連する問題