テーブルには2つのフィールドがあります。 trackword and created_byModelFormsを使用すると、フィールドの修正方法がわかりません
フィールド "created_by"をforms.pyに含めると、選択リストが表示されますが、作成者を選択することはできますが、それは問題なく保存されますが、明らかに手動で行う必要はありません一方ではログインした人物であり、他のユーザーが選択リスト内の他の既存のユーザーに表示されるという問題を引き起こすため、選択リストを使用してトラックワードを追加するユーザーを指定します他の人が見ることはできません。
だから、私のフォームのコードは次のように見える場合:
@login_required
def add_trackword(request):
form = masterform(request.POST or None)
if request.method == 'POST':
if form.is_valid():
form.save()
messages.add_message(request, messages.SUCCESS, "The post has been saved!")
return HttpResponseRedirect("/trackwords/list/")
return render(request, 'masterform.html', {'form': form})
FORM
<div class="row" >
<div class="panel panel-default col-md-4">
<div class="panel-body">
<form action="" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" class="btn btn-block btn-success" value="Submit">
</form>
</div>
</div>
</div>
あなたが見るように、フォームが自動的にDjangoのモデルフォームエンジンによって作成され、私はいけないながらしなければなりませんさフィールドを書くことも、CANを使うこともできません。または私はどのようにどのように知っていない。私はこれを追加したいと思います。 'request.user'はそのコードスニペットのどこかにあります。なぜなら、テーブルが行セル内のcreated_byを取得しないと、空でないセル制約not nullが返されるからです。
これらすべての抽象化によって、編集が非常に難しくなります。私が手作業でフォームを書いた場合、私はdjangoが私のためにすべてを作成するようにすれば、クライアントのチェックを追加することもできます。