0

私はコードを持っています:

name = MakesiteNameForm(datdict)
if name.is_valid:
    name.save()

datsite = Makesite.objects.get(sitename=request.POST['sitename'])
datsite.ref_id.add(RefID.objects.create(url=request.POST['url'],description=request.POST['description']))
datsite.save()

だから私はいくつかの多くのアイテムを作成して保存するために使用したいこのコードのビットを持っていますが、このメソッドを使用しようとするとMakesite matching query does not exist. これは、保存されていないことを意味すると思いますが、後で呼び出して、querydict 内にあるsite = Makesite.objects.all()ものの値を明確に確認できます。request.POST['sitename']では、これをより適切に照会する方法はありますか? または、私が行方不明の save() について何かありますか?

編集:そのフォームは値サイト名の値を Makesite テーブルに保存します

4

1 に答える 1

1

save() 呼び出しはオブジェクトを作成しません。オブジェクトをデータベースに保存し、新しいオブジェクトの場合は新しい行を挿入するか、更新します。

まず、 form.is_valid() はメソッドですが、呼び出していないため、常に名前を保存しようとしています。それはあなたのエラーに関連しているかもしれませんし、関連していないかもしれませんが、とにかく間違っています.おそらくそれがクエリエラーの原因であり、以下の get() 呼び出しではありません. それを修正して、何が起こるか見てください。

于 2012-04-21T22:32:26.687 に答える