我正在开发一个模型,该模型通过简单的 hack 实现只读属性:
from pynamodb.models import Model
class MyModel(Model):
[…]
updated_at = UTCDateTimeAttribute()
def save(self):
self.updated_at = datetime.now(timezone.utc)
return super().save()
有了这个技巧,用户在创建实例时需要提供updated_at
,即使该值将被忽略。
这个直接的问题可以通过 来解决updated_at = UTCDateTimeAttribute(null=True)
,但现在模型发出的信号updated_at
可能不是响应的一部分,但事实并非如此。
基本上,我如何向用户表明他们不能为字段提供值(理想情况下尝试设置updated_at
应该会导致错误),但是该模型的每个实例都会有该字段的值?