0

サイトでリストを作成するユーザーがいて、一般的な CreateView を使用してリストを作成できるようにしています。リストのフィールドの 1 つが所有者 (作成者) です。

それを作成しているユーザーはすでに所有者であるため、ユーザーに所有者を選択するように求めることは意味がありません。

そのため、フォームクラスが所有者フィールドを除外する「モデル」パラメーターの代わりに、「フォームクラス」を 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)

それは単純なものであるべきです。このスレッドでは、使用するように言われていますself.object.ownerが、self.object はNone型です。

これをどのように処理すればよいですか?ありがとう

4

1 に答える 1

2

スーパーを探してform.instance.owner = request.userから呼び出す

于 2011-12-22T14:19:37.673 に答える