gpt4 book ai didi

python - 将常见的 date_added、date_modified 添加到 Django 中的许多模型的最佳方法

转载 作者:太空狗 更新时间:2023-10-30 01:56:10 24 4
gpt4 key购买 nike

我正在将 date_added 和 date_modified 字段添加到我当前项目中的一堆常见模型中。我正在继承 models.Model 并添加适当的字段,但我想添加自动保存行为(即:每次有人调用 MyModel.save() 时,date_modified 字段都会更新。我看到两种方法:覆盖 save() 方法或者在抽象基类中添加一个 pre_save 信号处理程序。

class CommonData(models.Model):
date_added = models.DateTimeField(default=datetime.datetime.today,null=False,blank=False)
date_modified = models.DateTimeField(default=datetime.datetime.today,null=True,blank=True)

# register a handler for the pre_save to update date_modified
def pre_save_handler(sender, **kwargs):
date_modified = datetime.datetime.today

def __init__():
pre_save.connect(pre_save_handler, sender=self)

class CommonData(models.Model):
date_added = models.DateTimeField(default=datetime.datetime.today,null=False,blank=False)
date_modified = models.DateTimeField(default=datetime.datetime.today,null=True,blank=True)

# overriding save
def save(force_insert=False,force_update=False):
date_modified = datetime.datetime.now
return models.Model.save(force_insert, force_update)

我是 Django 和 Python 的新手,想知道哪种方法更“django”?哪个更有效率?哪种方法“正确”?

最佳答案

由于您是 Django 的新手,您可能会发现 Django 命令扩展很有用:

http://code.google.com/p/django-command-extensions/

...它方便地包含一个 TimeStampedModel,您可以从中派生模型:

http://code.google.com/p/django-command-extensions/wiki/ModelExtensions

An abstract base class model that provides self-managed "created" and "modified" fields.

关于python - 将常见的 date_added、date_modified 添加到 Django 中的许多模型的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1959311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com