我的模型是这样的:
class Deal(models.Model):
in_quantity = models.IntegerField()
exchange = models.CharField(max_length=255)
note = models.TextField(max_length=10000, null=True)
time_deal = models.DateTimeField(default=datetime.now())
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
每次迁移我都会得到这个操作:
- Alter field time_deal on deal
这里是迁移的例子:
class Migration(migrations.Migration):
dependencies = [
("portfolio", "0024_rename_quantity_deal_in_quantity_and_more"),
]
operations = [
migrations.AlterField(
model_name="deal",
name="note",
field=models.TextField(max_length=10000, null=True),
),
migrations.AlterField(
model_name="deal",
name="time_deal",
field=models.DateTimeField(
default=datetime.datetime(2023, 4, 26, 16, 59, 46, 769292)
),
),
migrations.AlterField(
model_name="historicaldeal",
name="note",
field=models.TextField(max_length=10000, null=True),
),
migrations.AlterField(
model_name="historicaldeal",
name="time_deal",
field=models.DateTimeField(
default=datetime.datetime(2023, 4, 26, 16, 59, 46, 769292)
),
),
]
你能帮我在每次迁移中避免它吗?
我在网上搜索了解决方案,但一无所获。
你不应该通过
datetime.now()
,因为每次都会评估并因此创建一个新的迁移。
您可以改为传递一个可调用对象,然后在需要时对其进行评估:
class Deal(models.Model):
in_quantity = models.IntegerField()
exchange = models.CharField(max_length=255)
note = models.TextField(max_length=10000, null=True)
time_deal = models.DateTimeField(default=datetime.now)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
auto_now_add=True
.