0
私は、ModelFormとFormsを使用してデータベース内のデータを保存する方法の鍵となる基本が欠落していると思います。私はUserクラスには含まれていない店舗固有のデータであるのUserProfileのモデルを持っているModelFormを使用してユーザー入力フォームからデータを保存する方法
Models.py:
class UserProfileForm(ModelForm):
class Meta:
model = UserProfile
:
class UserProfile(models.Model):
GRADE_YEAR_CHOICES = (
('FR', 'Freshman'),
('SO', 'Sophomore'),
('JR', 'Junior'),
('SR', 'Senior'),
('GR', 'Graduate')
)
school = models.CharField(max_length=64)
grade_year = models.CharField(max_length=2, choices=GRADE_YEAR_CHOICES)
gpa = models.DecimalField(decimal_places=2, max_digits=6, blank=True, null=True)
user = models.ForeignKey(User, unique=True)
マイForms.pyは次のようになります
この表示は次のようになります。
def more(request):
if request.method == 'POST':
form = UserProfileForm(request.POST)
if form.is_valid():
form = UserProfileForm(request.POST,
school = form.cleaned_data['school'],
grade_year = form.cleaned_data['grade_year'],
gpa = form.cleaned_data['gpa'],
user = form.cleaned_data['user']
)
form.save()
return HttpResponseRedirect('/success')
else:
form = UserProfileForm()
variables = RequestContext(request, {
'form': form
})
return render_to_response('more.html', variables)
私は取得データを保存しようとすると、フォームが、私は指定されたモデルからすべてのフィールドを正しくレンダリングしかし:
__init__() got an unexpected keyword argument 'grade_year'
は、私がここで何をしないのですか?私は大きなコンセプトを見逃している可能性があるので、どんな助けでも大歓迎です。
これはそれです。うわー、私はそれがそれほど簡単ではないことを理解していませんでした。どうもありがとうございます –