0

私は問題を抱えていて、それがどこから来たのかわかりません。

私はこのフォームを持っています:

class LinkWidgetToDashboardForm(forms.Form):
    widget = forms.MultipleChoiceField(
                choices =  [(w.pk, w.name) for w in Widget.objects.all()]
            )

特別なことは何もありませんが、保存できません。ナビゲーターが私を返します

'LinkWidgetToDashboardForm' object has no attribute 'save'

実際dir()、フォーム インスタンスに a を適用すると、save メソッドはありません。

参考までに

def linkWidgetToDashboard(request):
    if request.method == 'POST':
        form = LinkWidgetToDashboardForm(request.POST)
        if form.is_valid():
            o = form.save(commit=False)
            o.dashboard = Dashboard.object.get(pk=1)
            o.widget = form.cleaned_data['widget']
            o.save()
    return HttpResponse('')

何か案が ?

4

3 に答える 3

1

ModelFormでなくてもご利用いただけますForm。あなたのフォームは から派生していforms.Formます。

保存するModelFormと、定義されたモデルのインスタンスが返されます。通常のフォームは、作成するオブジェクトがわからないため、それを行うことができません。

ModelFormsを参照してください。

于 2013-06-06T07:36:39.823 に答える