0
私は、必須フィールドの1つが現在サインインしているユーザーであるモデルを持っています。必要なモデルフィールドの現在のユーザーを設定する
views.py
def post(self, request):
bound_form = self.form_class(request.POST)
if bound_form.is_valid():
new_position = bound_form.save()
問題は、ユーザーがそれらをフォーム上の自己を選択した場合、これが唯一の作品ということである:私はモデルの新しいレコードを作成するときは、次ありません。現在のユーザーを自動的に設定する方法が必要であり、ユーザーフィールドをフォームに表示しないだけです。私はこれを試してみました:それはモデル上の必須フィールドであることをユーザーに欠落しているため、bound_form
が有効でないため
def post(self, request):
bound_form = self.form_class(request.POST)
if bound_form.is_valid():
new_position = bound_form.save(commit=False)
new_position.user = request.user
new_position.save()
しかし、これは動作しません。フォームを保存しようとする前に、他にどこにユーザーを設定できますか?テンプレート、またはビューのgetメソッド?
最初にフォームからユーザーフィールドを除外する必要があることを除いて、実行したことを正確に行う必要があります。 –
私にはわからない。私は現在、ユーザーに入力したいフィールドのみを表示します(つまり、ユーザーフィールドを削除しました)。言い換えれば、...すべてがユーザーが自分自身を選択した場合は動作しますが、フィールドを削除して自分自身を選択できない場合は、上記のコードでもフォームを保存できません。 – darkpool
あなたの 'form'の' class Meta: 'に' exclude =( 'user'、) 'を使うべきです – trantu