1

チュートリアルに似た基本的な Django アプリに取り組んでいます。作成して保存した後に poll の値を変更しようとしましたが、変更できません。.commit()and の代わりにandを使用してみましたが.save()、どちらも機能しませんでした。シェルから変更しようとすると、次のようになります。HTML を使用した場合も同様の結果になります (つまり、失敗)。助言がありますか?モデルのフィールドの属性を変更してみましたがeditable=true、エラーは発生しませんでしたが、役に立ちませんでした。ここで何が起こっているのでしょうか?

>>> from votes.models import polls
>>> polls.objects.all()[2].title
u'best band'
>>> polls.objects.all()[2].title='best album'
>>> polls.objects.all()[2].title
u'best band'
>>> polls.objects.all()[2].title='best album'
>>> polls.objects.all()[2].save()
>>> polls.objects.all()[2].title
u'best band'
4

2 に答える 2

2

を呼び出すたびpolls.objects.all()に、再構成されたオブジェクトの配列がデータベースから取得されます。 を呼び出すたびに、オブジェクトがデータベースから.all()再構成され、新しいコピーが作成されます。これらのいずれかを変更していますが、変更した同じものを保存していません。

あなたがしていること:

>>> from votes.models import polls
>>> poll = polls.objects.all()[2]
>>> poll.title = 'best album'
>>> poll.title
'best album'
>>> another_copy_of_poll = polls.objects.all()[2]
>>> another_copy_of_poll.title
u'best band'
>>> another_copy_of_poll.save()

あなたがすべきこと:

>>> from votes.models import polls
>>> poll = polls.objects.all()[2]
>>> poll.title = 'best album'
>>> poll.title
'best band'
>>> poll.save()
于 2012-10-21T01:59:15.387 に答える