历史模型在哪里?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了历史模型在哪里?相关的知识,希望对你有一定的参考价值。
The doc说:
当您运行迁移时,Django正在使用存储在迁移文件中的模型的历史版本。
但我在那里看不到它们。我使用RunPython
操作进行数据迁移,但也没有历史模型。可能是Django在飞行中生成它们吗?它是如何做到的?
在我们处理它的同时,让我确认一下我是否正确理解它。历史模型是编写迁移时的模型吗?除了一些限制,比如没有自定义方法。
答案
每当你创建一个模型并运行makemigrations
。 Django为该模型创建一个迁移文件,表示创建此类模型。
operations = [
migrations.CreateModel(
name='Book',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=50)),
],
)
]
当您编辑该模型(如添加字段并再次运行makemigrations
)时,会为该更改创建新的迁移文件。这是Django存储该模型历史的方式。
operations = [
migrations.AddField(
model_name='book',
name='author',
field=models.CharField(blank=True, max_length=50, null=True),
),
]
迁移文件是历史模型。
现在,当您在迁移中使用RunPython
添加一些自定义Python代码时,它将成为未来迁移的历史背景的一部分。
迁移文件是需要在模型的数据库上执行的一组操作。他们没有像save()
方法那样定制模型,因为这个模型是根据历史记录,即迁移文件创建的。
以上是关于历史模型在哪里?的主要内容,如果未能解决你的问题,请参考以下文章
我在哪里更改此 Python 代码片段以将临时文件保存在 tmp 文件夹中?
在 webview_flutter 中启用捏合和缩放,在哪里添加代码片段 [this.webView.getSettings().setBuiltInZoomControls(true);]