在django模型中说这个模型存在于details / models.py
中 class OccDetails(models.Model):
title = models.CharField(max_length = 255)
occ = models.ForeignKey(Occ)
因此,当创建同步数据库时,将创建以下字段
以后再添加两个字段,并且同步数据库会使新字段无法创建。如何解决这个问题,以下是什么是auto_now = true
这些是新字段
created_date = models.DateTimeField(auto_now_add=True)
modified_date = models.DateTimeField(auto_now_add=True, auto_now=True)
答案 0 :(得分:7)
syncdb为INSTALLED_APPS中尚未创建表的所有应用创建数据库表。
Syncdb不会改变现有表格
syncdb
只会为尚未安装的模型创建表。它永远不会发出ALTER TABLE
语句来匹配安装后对模型类所做的更改。对模型类和数据库模式的更改通常涉及某种形式的歧义,在这些情况下,Django必须猜测要进行的正确更改。存在关键数据在此过程中丢失的风险。
你可以
ALTER TABLE
命令DROP TABLE
特定表(将丢失数据)并再次运行syncdb
DateField.auto_now
:每次保存对象时自动将字段设置为NOW()
。对“最后修改”的时间戳有用。请注意,始终使用当前日期;它不仅仅是您可以覆盖的默认值。
因此,每次调用modified_date
object.save()
列都会自动更新
答案 1 :(得分:3)