0
私のモデルには、ユーザーモデルに必要な外部キーがあります。フォームの送信時に、ログインしたユーザーを送信者として保存したいと思います。私の見解ではdjangoフォームサブミットのフィールド値としてユーザーオブジェクトを設定しました
:このような
def myview(request):
if request.method == 'POST':
form = MyForm(request.POST)
myuser = User.objects.get(id=request.user.id)
form.submitter_field = myuser
if form.is_valid()
#this prints a failed message saying submitter_field is required
サブミッターフィールドは必須です。フィールドを設定する前に 'is_valid()'を呼び出すことはできません。 'is_valid()'の前に 'form.save(commit = False)'を実行すると、データが検証されなかったためにthrows and error: 'を作成できませんでした。 ' – smilebomb
フォームでサブミッター・フィールドが必要な場合は、フォームからサブミッター・フィールドを除去するか、または必須= Falseのサブミッター・フィールドを設定するだけです。 'form = MyForm(request.POSTまたはNone、initial = {'submitter':request.user})'を実行して、フォームの初期値を設定することもできます。 – WayBehind