2017-11-11 2 views
-1

ビューフォームを保存できません。フォームが有効ではないと思います。どうすれば有効にできますか?

def createitem(request): 
if request.method == "POST": 
    form= itemform(request.POST, request.FILES) 
    if form.is_valid(): 
     form.save() 
    return Redirect('/items') 
else:  
    form = itemform() 
    return render(request, 'app/create.html', {'form':form}) 

はここにあなたが

class items(models.Model): 
    name = models.CharField(max_length = 30) 
    description = models.TextField() 
    image = models.FileField(upload_to='documents/') 


class itemform(ModelForm): 
    class Meta: 
     model = items 
     fields = ['name','description','image'] 

それと間違って何かを見れば、私は設定

MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 
MEDIA_URL = '/media/' 
+1

OK、フォームは有効ではありません。あなたの質問は何ですか? (なぜ静的な設定が関係するのだろうと思いますか?) –

+0

また、Pythonは行末にセミコロンを使用しません。 –

+0

今質問を参照してください.. –

答えて

0

にこれをすでにを追加したモデルだOK、これはストレートな答えはありませんが、私はこれらの種類の問題をデバッグするために使用します。

form = ... 
import pdb; pdb.set_trace() 
if form.is_valid(): 
    ... 

サーバーを実行してフォームを送信してください。提出後、デバッガが輸入PDB に保持する端末はその後

$ form.errors

Plusを使用してセミコロンの男を使用していない確認してください。

+0

私はこのエラーを試しました:(Pdb){'画像':['このフィールドは必須です']} –

2

Daniel Rosemanと同じように、「フォームが有効でないとどうなるでしょうか」というロジックはありません。 RETURN文

def createitem(request): 
if request.method == "POST": 
    form= itemform(request.POST, request.FILES) 
    if form.is_valid(): 
     form.save() 
     return Redirect('/items') 
else:  
    form = itemform() 
return render(request, 'app/create.html', {'form':form}) 
+0

どのように回避策を有効にするには? –

0

前 削除TABはSO私はちょうど私が今うまく働い

https://stackoverflow.com/a/20394870/8925418

を仮定し、ファイル入力のためのenctypeを宣言する必要が

<form method="post" enctype="multipart/form-data"> 

をcreate.htmlするためにこれらのLINESを追加しました

関連する問題