Django - 在模型方法中将模型字段设置为 DB "Now"值

标签 django postgresql

我正在尝试将模型的日期时间字段之一设置为“现在”。为了避免任何时差问题,我试图坚持使用数据库中生成的时间值(与 Python 中生成的时间值相反,例如 datetime.datetime.now())。但是,看起来很难从实例方法中执行此操作。我正在尝试执行以下操作:

class MyModel:
    ...
    last_fetched = models.DateTimeField(null=True)

    def fetch_scenes(self):
        # Do some work
        ...
        self.objects.filter(id=self.id).update(last_fetched=django.db.models.functions.Now())

Django 不允许从实例方法中访问模型的管理器(可能有充分的理由)。有什么方法可以访问和更新仅由实例组成的查询集吗?

最佳答案

将方法移动到model's manager .然后您可以在此处按预期访问查询集。

关于Django - 在模型方法中将模型字段设置为 DB "Now"值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49387598/

相关文章:

python - Postgres 性能

python - Django:如何允许可疑文件操作/复制文件

django - 我应该使用单独的表而不是 Django 中的多对多字段吗

postgresql - DBCC CHECKDB 在 postgres 中等效

mysql - 搜索逻辑分片

sql - 在 SELECT 中嵌入 pg_advisory_lock 与显式使用另一个语句相比有什么好处?

django - NoReverseMatch 渲染 : Reverse for '' django. contrib.auth.views.login''

postgresql - 我如何根据定义的 where 子句顺序按顺序更新字段

postgresql - 我如何创建一个有效的索引来快速检索最后一天的数据?

python - Django UUIDField modelfield 在 Django admin : badly formed hexadecimal UUID string 中导致错误