2016-08-18 15 views
0

私はMariaDBデータベースに保存する簡単なフォームを取得しようとしていますが、フォームを使用すると保存することができません。私がDjango Adminインターフェイスを使用している場合、私はデータベースに変更を加えることができます。私のDjangoフォームデータは私のデータベースに保存されません

addstudent.html

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Add Student</title> 
</head> 

<body> 
    <h1>Add a student</h1> 

    <form id="studentform" method="post" action="/add-student/index/"> 

     {% csrf_token %} 
     {% for hidden in form.hidden_fields %} 
      {{ hidden }} 
     {% endfor %} 

     {% for field in form.visible_fields %} 
      {{ field.errors }} 
      {{ field.help_text }} 
      {{ field }} 
     {% endfor %} 

     <input type="submit" name="submit" value="Create Student" /> 
    </form> 
</body> 

views.py *

def addstudent(request):  
    if request.method == 'POST': 
     form = studentform(request.POST) 
     if form.is_valid(): 
      form.save(commit=True) 
      return index(request) 
     else: 
      print (form.errors) 
    else: 
     form = studentform() 
    return render(request, 'addstudent/addstudent.html', {'form':form}) 

models.py

class student(models.Model): 
    last_name = models.CharField(max_length=70) 
    other_names = models.CharField(max_length=70) 
    date_of_birth = models.DateField() 

forms.py

DOY = ('1980', '1981', '1982', '1983', '1984', '1985', '1986', '1987', 
     '1988', '1989', '1990', '1991', '1992', '1993', '1994', '1995', 
     '1996', '1997', '1998', '1999', '2000', '2001', '2002', '2003', 
     '2004', '2005', '2006', '2007', '2008', '2009', '2010', '2011', 
     '2012', '2013', '2014', '2015') 

class studentform(forms.ModelForm): 
    last_name = forms.CharField(max_length=70, help_text="Last name") 
    other_names = forms.CharField(max_length=70, help_text="Other names") 
    date_of_birth = forms.DateField(widget = extras.SelectDateWidget(years = DOY), help_text="Date Of Birth") 

    class Meta: 
     model = student 
     fields = ('last_name', 'other_names', 'date_of_birth',) 

それはデータベースに保存いない理由として任意のアイデア?

+0

どうしますか?任意のエラー? – Sayse

+0

@Sayseエラーはありません。インデックスページに進む必要がありますが、手動でデータベースをチェックすると、空のセットと表示されます。 – user6626063

答えて

2

フォームアクションは、私が想定したものに設定されているが、そのおそらく好ましい(その特定のビューにリンクしたURLを指している必要があり、ここで

<form id="studentform" method="post" action="/add-student/index/"> 

アクション一切そのビューを呼び出していないことを意味するもインデックス・ページですurlテンプレートタグを使用)

+1

ああ、ありがとうございます。なんて愚かな誤りか、私はそれがどう見えなかったのか分からない – user6626063

関連する問題