当有外部引用时,如何重命名 Django 模型的文件夹?

Posted

技术标签:

【中文标题】当有外部引用时,如何重命名 Django 模型的文件夹?【英文标题】:How to rename the folder of a Django model when there are external references to it? 【发布时间】:2022-01-22 06:10:52 【问题描述】:

最近我重命名了一个 Django 模型及其父文件夹:

来自

input_source_type/
    models.py

event_source_type/
    models.py

models.py 包含 InputSourceType,它也重命名为 EventSourceType

(在system 文件夹中)中的另一个模型在其迁移(0001_initial.py)中引用了此模型:

class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('admin_input_source_type', '0001_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='Systm',
            ...

当我运行python manage.py makemigrations 时,我得到了

django.db.migrations.exceptions.NodeNotFoundError: Migration admin_system.0001_initial dependencies reference nonexistent parent node ('admin_input_source_type', '0001_initial')

这是正确的,因为我不再使用 admin_input_source_type

我不想手动更改迁移,在这种情况下,Django 的方式是什么? 谢谢!

【问题讨论】:

您是否更新了settings.py 文件中installed_apps 列表中的名称? 嗨@RifatRakib,是的,我做到了。 【参考方案1】:

这个link 应该会有所帮助,但我建议您创建一个新应用以避免许多敏感问题。

【讨论】:

以上是关于当有外部引用时,如何重命名 Django 模型的文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Django 重命名模型?

如何从默认 Django 模型重命名模型字段?

Django - 如何使用 South 重命名模型字段?

如何重命名从 Django 模型自动生成的 GraphQL 类型字段?

Rails 使用同一命名空间中的模型作为 belongs_to 引用,如何从外部引用模型

在 Django 中重命名模型(表)