2017-01-19 19 views
0

データベース内の既存のオブジェクトをフォームからどのように編集できますか?私は例のためにこれを使用します。Djangoフォームからデータベース内のオブジェクトを編集する

obj_ex = Model(column = value, column2 = value2) obj_ex.save()

しかし、これは、データベース内の自分のオブジェクトを更新しません。私はエントリのpkにアクセスし、xのpkでエントリの値を保存しようとしましたが、まだテーブルを更新できません。

.update()タイプを使用してオブジェクトを更新する方法はありますか?または、テーブルを更新する別の方法がありますか?

ありがとうございます。

+0

フォームのコードを投稿してください。 – 2ps

+1

も参照してください[UpdateView](https://docs.djangoproject.com/en/1.10/ref/class-based-views/generic-editing/#updateview) – Udi

答えて

0

を私はテーブル内の複数のエントリを持っていたので、私は更新フィールドを使用テーブル内のセルを更新します。これは私がやったことです:それが呼び出されたときには、テーブルを更新するよう

o = Model.objects.filter(x=value0).values_list("id", flat=True) #where x is posted information getting the primary key (id). 
Model.objects.select_related().filter(id = o).update(column = value, column2 = value2) 

更新フィールドは.save()を必要としません。

ウディに感謝したいと思います。正しい方向へ私を踏みにじってくれました。

+1

'.update()を呼び出すと、 '.save()'メソッドには時にはいくつかの機能が含まれています – Udi

+1

次も試してみてください: 'Model.objects.filter(x = value0).update(column = value、column2 = value2)' – Udi

+0

最初のコメントはどういう意味ですか? '.update()'を使うのは、 '.save()'を使うよりも悪いですか?私はまだDjangoには新しく、自分のやり方を学びました。 – GreenSaber

1

代わりの新しいインスタンス(以降、新たなデシベルレコード)を作成し

obj_ex = Model(column=value, column2=value2) 

は試してみてください。

o = Model.objects.get(pk=1234) # load instance with id=1234 to memory from db 
o.column = value 
o.column2 = value2 
o.save() 
関連する問題