use*_*631 1 django django-models
我有以下型号:
class MetaData(models.Model):
created_at = models.DateTimeField(auto_now_add=True, auto_now=False)
created_by = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True,
related_name='%(app_label)s_%(class)s_created_by')
updated_at = models.DateTimeField(auto_now_add=False, auto_now=True)
updated_by = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True,
related_name='%(app_label)s_%(class)s_updated_by')
Run Code Online (Sandbox Code Playgroud)
update_at字段也在创建时使用值完成,而不是为null.我希望只有在第一次保存/创建之后才有值.
难道我做错了什么 ?
在Django中,你必须auto_now和auto_now_add两者.
来自文档:
DateField.auto_now每次保存对象时自动将字段设置为现在.(这意味着它也是第一次创建时)
DateField.auto_now_add首次创建对象时自动将字段设置为现在.
编辑:
如果你希望你的updated_at领域是null第一次创建对象时,你可以简单地通过null=True一起与auto_now=True于DateTimeField:
class MetaData(models.Model):
# ...
updated_at = models.DateTimeField(auto_now=True, null=True)
# ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2442 次 |
| 最近记录: |