0
これまでさまざまなオプションを試しましたが、これまでのところ運がありませんでした。インスタンスデータをModelFieldにあらかじめ入力するようにしています。ここで私が持っているものです。オブジェクトデータを含む事前入力モデルフォーム - Django
forms.py
class edit_project_info(ModelForm):
project_name = forms.CharField(max_length=150)
class Meta:
model = Project
exclude = ['project_type', 'created_date', 'start_date', 'end_date', 'pm_scope', 'dev_scope', 'design_scope', 'testing_scope' ]
View.py
def edit_project (request, offset):
this_project = Project.objects.get(pk=offset)
data = {'project_name' : 'abc'}
if request.method == 'POST':
form = edit_project_info(request.POST, instance=this_project, initial=data)
if form.is_valid():
form.save()
return HttpResponseRedirect('/project_profile/%s/' % offset)
else:
form = edit_project_info()
私が得るすべては空のフィールドです。初期値をforms.pyに追加することはできますが、フォームインスタンスに基づいて作成されるのではなく、静的です。私がdictを作成してフォームのインスタンスのinitialに渡したのは、何もしていないようです。私は何か基本的なものが欠けていると確信している。どんな助けも素晴らしいだろう!早めにありがとう。
を、それがのように動作します:ちょうど
else: form = edit_project_info()
を削除今期待している。理由を理解するために少しの調査を行う必要があります。助けてくれてありがとう。 – joninああ、申し訳ありませんがインデントを理解していませんでした。私は答えを更新しました - 'form'は' if 'の前に '' request.method ==' POST ': ''でなければなりません。 –
アントンにありがとう!これは期待通りに機能しました。 – jonin