django poll アプリケーションを自分のアプリケーション (IMC 電卓) に適用して、python/django での最初のステップのために小さなプロジェクトを改善および構築しようとしています。
accueil.htmlにある最初のフォームのデータを保存しようとしています:
<form action="" method="post">
<table>
{{ form.as_table }}
</table>
<input type ="submit" value="Submit">
</form>
これが私のforms.pyです:
from django import forms
class IndividuDataForm(forms.Form):
nom = forms.CharField(max_length=100)
prenom = forms.CharField(max_length= 100)
anniversaire = forms.DateField()
taille = forms.IntegerField()
poids = forms.IntegerField()
ここに私のmodels.pyがあります:
from django.db import models
from django.forms import ModelForm
class Individu(models.Model):
nom = models.CharField(max_length=100)
prenom = models.CharField(max_length= 100)
anniversaire = models.DateField()
taille = models.IntegerField()
poids = models.IntegerField()
def __unicode__(self):
return self.nom
class ImcResultat(models.Model):
individu = models.ManyToManyField(Individu)
imc = models.IntegerField()
date_imc = models.DateField()
class IndividuForm(ModelForm):
class Meta:
model = Individu
class ImcResultatForm(ModelForm):
class Meta:
model = ImcResultat
そして最後に、私の* views.py *がここにあります: 問題は、フォームからデータベースにデータを保存しようとしたときの 13 行目 * a = cd.create() *にあります。
from django.shortcuts import render_to_response
from django.http import HttpResponse, HttpResponseRedirect
from models import Individu, ImcResultat
from forms import IndividuDataForm
def accueil(request):
if request.method == 'POST':
form = IndividuDataForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
a = cd.create() **#this is the problem**
return HttpResponseRedirect('/accueil/page2/')
else:
form = IndividuDataForm()
return render_to_response('accueil.html', {'form':form})
def page2(request):
return render_to_response('page2.html')
私の関数がうまく機能しないのは、views.py の最初の部分にあると思います。フォームがデータベースに保存されません。def accueil(リクエスト):
if request.method == 'POST':
form = IndividuDataForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
a = cd.create() **#this is the problem**
return HttpResponseRedirect('/accueil/page2/')
フォームが有効かどうかを確認した後、フォーム内のデータを消去してから保存しようとします。そして、私はこのエラーを受け取りました:
Exception Type: AttributeError
Exception Value: 'dict' object has no attribute 'create'
辞書からのものだと思いますが、私のコードでは辞書リストに { } を使用することはありません。だから私は何もわからず、学習の過程で立ち往生しています。
ご協力いただきありがとうございます。最初のスタックオーバーフローの投稿から、あまり多くの間違いを犯さなかったことを願っています。