2017-04-24 2 views
0

マイビュー画像は、Djangoのフォームから

def apost(request): 
    if request.method =='POST': 
     form = APostForm(request.POST, request.FILES) 
     if form.is_valid(): 
      form = form.save(commit=False) 
      form.slug = slugify(form.title) 
      form.save() 
      return redirect('apost') 
    else: 
     form = APostForm() 

    template_name = 'dadmin/form.html' 
    items = Post.objects.all() 
    context = {'title':'Add Post','form':form,'items':items} 
    return render (request, template_name, context) 

マイフォーム

class APostForm(forms.ModelForm): 
    class Meta: 
     model = Post 
     fields = {'title','photo','content'} 

モデル

photo = models.ImageField(upload_to='images') 

のPhot受理され、アップロード画像がありませんが、アップロードされていませんoをクリックすると保存されます。このフィールドは必須のエラーです。私はここで質問を調べたが、リクエスト。ファイルは他の問題を解決するが、鉱山は解決しない。どうしましたか?

+1

HTMLフォームタグに '' enctypeを=は「マルチパート/フォームデータ」はありますか? –

+0

うーん、私はそれを逃した。それは今働いた。ありがとう! –

答えて

1

あなたは、フォームをアップロードするテンプレートで使用する必要があります。

<form class="form-horizontal form_middle" enctype='multipart/form-data' method="POST"> 
#apply logic for media upload 
</form> 
+0

コメントからの答えを盗んでいい仕事。 –

-1

ファイルアップロードは、djangoのモデルフォームで少し奇妙です。フィールドを自動的に保存します

class APostForm(forms.ModelForm): 
    photo=forms.FileField(label='Upload image') # or image field 
    class Meta: 
     model = Post 
     fields = {'title','content'} 

form.save() - あなたのforms.pyに変更し 。

+1

これは私のために働かなかった。しかし、テンプレートの

が働いていました。ありがとう! –

関連する問題