2017-09-12 3 views
2

私が作業しているアプリケーションでこのバグを発見し、テストする新しいdjangoサーバーインスタンスでこのバグを複製しました。ここで私は走ったシェルがある:私はモデルインスタンスの値を調整し、model.save()が実行されると、これらの変更を有効にすることはできませんなぜDjango model.save()同じモデルの新しいインスタンスを有効にしない

[email protected]:~/testproject$ sudo python3 manage.py shell 
Python 3.5.2 (default, Nov 17 2016, 17:05:23) 
Type 'copyright', 'credits' or 'license' for more information 
IPython 6.1.0 -- An enhanced Interactive Python. Type '?' for help. 

In [1]: from testapp.models import testmodel 

In [2]: a = testmodel.objects.first() 

In [3]: print(a.testvar1) 
0 

In [4]: a.testvar1 = 1 

In [5]: print(a.testvar1) 
1 

In [6]: a.save() 

In [7]: b = testmodel.objects.first() 

In [8]: print(b.testvar1) 
0 

だから、誰かが説明してくださいだろうか?私はDjangoのドキュメントでモデルを変更するための代替方法を見つけることができませんが、いずれの方向にも感謝します。ありがとう!

+2

'testvar'はmodel.Fieldインスタンスですか?モデルフィールドのみがデータベースに保存されます。他の属性は永続化されません。 'testmodel'のクラス定義をあなたの質問に追加してください。 –

+0

これは私が探していた答えです、感謝します。Haken Lid –

答えて

0

コードに問題はありません。 データベースには1つのデータしか保存せず、もう一度やり直しができます。 最初の検索の結果が2番目の検索の結果と矛盾していると思われます。

関連する問題