【问题标题】:django admin model field not updatedjango 管理模型字段未更新
【发布时间】:2023-04-18 10:03:01
【问题描述】:

我使用 Django Admin 添加数据,但是今天字段不会更新到当前时间,总是显示 django 开始时间。

模型.py:

class Post(models.Model):
    today = datetime.now().strftime("%Y%m%d")
    date = models.CharField(max_length=8,default=datetime.now())
    title = models.CharField(max_length=100)
    content = models.TextField(blank=True)

image link of screenshot to show my page

【问题讨论】:

  • 只有在应用程序启动时才会设置“今天”字段......与“日期”字段上的默认字段相同。您应该将函数传递给默认字段(即,删除括号)。我不确定你想用今天的字段做什么......

标签: python django


【解决方案1】:

今天需要是一个日期字段。鉴于您的 strftime 格式,我假设您尝试仅添加日期而不是日期时间。此外,日期不应是 CharField,而应是 DateField 或 DateTimeField。

此外,您需要使用 add_now 或 auto_add_now,具体取决于您是希望在每次保存模型时更新值还是仅在创建时更新值,docs here

我想您正在尝试执行以下操作:

class Post(models.Model):
    today = models.DateField(add_now=True)
    date = models.DateField(auto_add_now=True)
    title = models.CharField(max_length=100)
    content = models.TextField(blank=True)

【讨论】:

    【解决方案2】:

    你错过了models.DateTimeField()。应该是:

    today = models.DateTimeField()

    【讨论】: