私は数週間この頭を叩いていましたが、私はModelFormを動作させることに決めました! ModelFormから受け取ったデータを使ってPOSTを処理すると、データベースから元のレコードを取得し、元のレコードを 'インスタンス'として使用して新しいフォームを作成する必要があることを理解しています。これは以下のようにdocumented in the Django docsです:Django ModelFormからレコードIDを取得する方法
>>> from myapp.models import Article
>>> from myapp.forms import ArticleForm
# Create a form instance from POST data.
>>> f = ArticleForm(request.POST)
# Save a new Article object from the form's data.
>>> new_article = f.save()
# Create a form to edit an existing Article, but use
# POST data to populate the form.
>>> a = Article.objects.get(pk=1)
>>> f = ArticleForm(request.POST, instance=a)
>>> f.save()
この例では、彼らが探しているレコードのPKが1であることを知っているが、あなたはrequest.POSTからデータを読んでいる場合はどのようにあなたがPKを知っていますか、以前に画面に書いたデータに基づいてPOSTが行われているとします。 ModelFormはpkを保存しません。だから、どこからこれを選ぶのですか?それがなければ、(上記の 'a'のように)どのレコードをDBから引き出すのかをどのように知っていますか?
ありがとうございます!
ベン
あなたはたとえば、URLを通して、あなたのビューに渡すことができます。/articles/update/1/ – efkin