2016-08-05 58 views
0

我試圖建立在我的Django的網站前端的形式,將允許用戶將條目添加到我的SQL數據庫的實例。的ModelForm不會創建模型

但是,當我使用的形式沒有發生在我的數據庫中。我究竟做錯了什麼?

我認爲正確的方法是使用ModelForm技術。

我的模式是這樣的:

class Actor(models.Model): 
    name = models.CharField(max_length=200) 
    wage = models.IntegerField(default=3100) 

    def __str__(self): 
     return self.name 

所以我在forms.py寫了這個:

from django import forms 
from .models import Actor 

class ActorForm(forms.ModelForm): 
    class Meta: 
     model = Actor 
     fields = ['name', 'wage'] 
form = ActorForm() 

我加入這個我views.py

def get_actor(request): 
    if request.method == 'POST': 
     form = ActorForm(request.POST) 
     if form.is_valid(): 
      return HttpResponseRedirect('/scenes/thanks/') 
    else: 
     form = ActorForm() 

    return render(request, 'scenes/actor.html', {'form': form}) 

def thanks(request): 
    return render(request, 'scenes/thanks.html',) 

這在模板所謂actors.html

<form action="/scenes/actor/" method="post"> 
{% csrf_token %} 
{{ form }} 
<input type="submit" value="Submit" /> 

+1

也沒有點實例在forms.py形式 - 獲得擺脫這一行'''form = ActorForm()''' –

回答

0

你必須檢查它是有效的後致電雛型的save()方法:

def get_actor(request): 
    if request.method == 'POST': 
     form = ActorForm(request.POST) 
     if form.is_valid(): 
      form.save() 
      return HttpResponseRedirect('/scenes/thanks/') 
    else: 
     form = ActorForm() 

    return render(request, 'scenes/actor.html', {'form': form}) 
+0

我確定我讀過ModelForm內置的save()函數。非常感謝! –