私は自分のサイトにリストを作成しています。一般的なCreateViewを使用して作成できます。リストのフィールドの1つは所有者(作成者)です。Django:CreateVView.form_validのModelFormにフィールドを追加します。
所有者を作成しようとしているユーザーがすでに所有者であるため、所有者を選択するようユーザーに依頼するのは意味がありません。
したがって、form_classが所有者フィールドを除外する「モデル」パラメータではなく、「Form_class」というCreateViewに渡します。
フォームを保存するには、所有者を追加する必要があります。
私はCreateViewをサブクラス化し、form_validメソッドを追加しましたが、これを行うには問題があります。
はこれまでのところ、私はそれは単純なものでなければなりません
class MyCreateView(CreateView)
form_class = ListForm
def form_valid(self, form):
form.??? = self.request.user -->> expression of the left side
return super(MyCreateView, self).form_valid(form)
を得ました。 this threadでは、彼らはself.object.owner
を使用すると言いますが、self.objectはNone
タイプです。
どうすればよいですか? おかげ
スーパー呼び出します。 self.instanceは "DoesNotExist"を返し、self.instanceはAttributeErrorを返します。 'MyCreateView'オブジェクトには属性 'instance'がありません。 ListFormもまたModelForm – duduklein
です。私はform.instance = MyModel()を追加してからform.instance.owner = self.request.userを追加しました。これは実用的ですが、モデルをdbに保存すると、表示されたフォームのすべてのフィールドが空になります。 – duduklein
投稿が間違っています。更新私の答え – ojii