2012-04-21 7 views
0

私は、コードを持っている:.save()はいつオブジェクトを作成しますか?

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と言います。私はそれが保存されていないことを意味すると思うが、その後、私はsite = Makesite.objects.all()と呼んで、request.POST['sitename']がquerydictの中に何を置いているのかを明確に見ることができます。それでは、これをもっとうまくクエリする方法はありますか?または、save()の行方不明のものがありますか?

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

答えて

1

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

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

+0

ああ、それはそれを解決しませんでした。それをキャッチしてくれてありがとう、ええ。まだそのエラーがあります。私はそれが要求と何か関係があると思う。ポスト['sitename']私はそれが他のものである必要があると思いますか? – city

+0

さらにコードを表示する必要があります。それ以外は、すべてが正しいようです。 –

+0

あなたは何が必要ですか? – city

関連する問題