最後に、アプリの定数のテーブルを作成しました(実際、他のものを使用するために以前に作成しました)。したがって、テーブルは次のようになります。
from django.db import models
from django.db.models.signals import post_save
class Constant(models.Model):
name = models.CharField(max_length=50)
value = models.CharField(max_length=50)
「version_date」という名前の定数を追加しました。
それよりも、このコードをmodels.pyの下部に追加して、アプリ内のすべてのモデルのすべての変更を追跡しました。
myapp = models.get_app('myapp')
models2track = models.get_models(myapp)
def update_version(sender, **kwargs):
for model in models2track:
post_save.disconnect(update_version, sender=model, dispatch_uid="some_uid"+model._meta.db_table)
version_date = Constant.objects.get_or_create(id=1,name="version date")[0]
version_date.value = str(int(time.time()))
version_date.save()
for model in models2track:
post_save.connect(update_version, sender=model, dispatch_uid="some_uid"+model._meta.db_table)
for model in models2track:
post_save.connect(update_version, sender=model, dispatch_uid="some_uid"+model._meta.db_table)
このように、DBスキーマを変更する必要はありません。上記のコードを追加するだけで済みます。皆さんありがとう