Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何在';makemigrations';指挥部?_Django_Django Migrations - Fatal编程技术网

Django 如何在';makemigrations';指挥部?

Django 如何在';makemigrations';指挥部?,django,django-migrations,Django,Django Migrations,我在我的一个模型中添加了一个字段,但在“models”文件夹中,我有另外两个python文件,它们只有视图模型,我可以从中查询数据库中的视图。当我运行makemigrations命令时,创建的新迁移文件还包括将这些视图模型作为表添加到我的数据库中(我不想这样做)。我怎么能忽略这些更改,只向数据库中的实际表提交一个字段的添加 我想我可能必须删除新迁移文件中的migrations.CreateModel…,只保留migrations.addField…,然后运行“migrate”命令。我没有继续这样

我在我的一个模型中添加了一个字段,但在“models”文件夹中,我有另外两个python文件,它们只有视图模型,我可以从中查询数据库中的视图。当我运行makemigrations命令时,创建的新迁移文件还包括将这些视图模型作为表添加到我的数据库中(我不想这样做)。我怎么能忽略这些更改,只向数据库中的实际表提交一个字段的添加

我想我可能必须删除新迁移文件中的
migrations.CreateModel…
,只保留
migrations.addField…
,然后运行“migrate”命令。我没有继续这样做,因为我不确定,也许它会以某种方式扰乱我的数据库


提前感谢所有能够提供帮助的人。

当您为数据库视图创建模型时,必须添加meta class managed=false和db_表,如下所示:

class MyViewModel(models.Model):
    field: models.CharField(max_length=100)

    class Meta:
         managed = False
         db_table = 'database_view_name'
当您编写并运行makemigrations时,生成的迁移包含此模型,但当您运行migrate时,此迁移不会更改数据库上的任何内容


您还可以使用python中的迁移创建视图。有关更多详细信息,请参见

当您为数据库视图创建模型时,必须添加meta class managed=false和db_表,如下所示:

class MyViewModel(models.Model):
    field: models.CharField(max_length=100)

    class Meta:
         managed = False
         db_table = 'database_view_name'
当您编写并运行makemigrations时,生成的迁移包含此模型,但当您运行migrate时,此迁移不会更改数据库上的任何内容


您还可以使用python中的迁移创建视图。有关更多详细信息,请参见

显示“查看”文件,因为如果它们不是模型,则不应尝试制作模型;显示“查看”文件,因为如果它们不是模型,则不应尝试制作模型