1

私は Django FormView を使用しています。私はずっと見てきましたが、PKが提供されている場合にオブジェクトをロードする方法の例が見つかりません。

現在、form_class を ModelView フォームに設定しています。このビューを使用して、pk が指定されていない場合は空のオブジェクトをロードするか、URL を介して pk が提供されている場合は特定のオブジェクトをフォームにロードします。

get_form_kwargs、get_form、または他の場所にロードする必要があるかどうかはわかりません。その方法についてのチュートリアルが本当に欲しいです。CreateView や UpdateView は使用せず、FormView のみを使用します。

誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

5

でやりますget_form_kwargs。フォームに渡す kwargs の辞書を返す必要があります。たとえば、pkが URL にある場合:

class MyAwesomeFormView(FormView):
    def get_form_kwargs(self):
        form_kwargs = super(MyAwesomeFormView, self).get_form_kwargs()
        if 'pk' in self.kwargs:
            form_kwargs['instance'] = models.AwesomeModel.objects.get(pk=int(self.kwargs['pk']))
        return form_kwargs
于 2013-09-18T02:41:02.870 に答える