私は次のものを持っていますmodels.py
:
class BagOfApples(models.Model):
quantity = models.PositiveSmallIntegerField(default = 0)
「りんごの袋」オブジェクトを作成し、その中に「りんご」を入れましょう。
>>> from myapp import models
>>>
>>> models.BagOfApples().save()
>>>
>>> bag1 = models.BagOfApples.objects.get(pk = 1)
>>> bag2 = models.BagOfApples.objects.get(pk = 1)
>>>
>>> bag1.quantity += 1
>>> bag1.save()
>>>
>>> bag1.quantity
1
>>> bag2.quantity
0
bag2
変数にデータを自動的にリロードする方法はありますか?
私の実際のアプリケーションでは、物事はそれよりも少し複雑で、同じオブジェクトが別のデータベース クエリによって取得された後、コードの別の部分で変更される可能性があります。これは意図的なものではありません (たとえば、Django が OneToOne または ForeignKey 関係の結果をキャッシュするため、この問題が発生します)。
同一のオブジェクトを追跡するある種のマネージャー (おそらくミドルウェアがこれを行うことができますか?) を持つことは本当に役に立ちます。
この例では、マネージャーはbag2
が実際bag1
には であることを自動的に検出し、2 番目のクエリを実行せずに単に を返しbag1
ます。
これを行う良い方法がない場合は、より良いアプリケーション設計に関するその他の役立つヒントをいただければ幸いです。