重命名 Django 中现有模式的关系表

问题描述 投票:0回答:1

由于从 django 2.x 迁移到 django 4.x,我必须重命名我的项目以修复包含“-”且不包含“_”的初始名称。

最初的项目名称是DEMANDE-PROJET 在名为 DEMANDE ( DEMANDE-PROJET_DEMANDE ) 的模型中,我有一个名为 UserDemandeMapper 的模型的外键(字段created_by)

created_by = models.ForeignKey('UserDemandeMapper', related_name="demande_createur",
                                   on_delete=models.SET_NULL, null=True, blank=True)

Django 正在自行处理该表,并且在我的数据库浏览器上我可以在名称 DEMANDE-PROJET_USERDEMANDE2573 上看到它



现在我重命名了我的项目,django想要请求DEMANDE_PROJET_*而不是DEMANDE-PROJET_*
我不能再要求任何东西了。

我补充:

    class Meta:
        db_table = "DEMANDE-PROJET_DEMANDE"

将我的 django 模型链接到具有固定名称的表。现在我可以毫无问题地请求德曼德了。
问题来自我的created_by 外键。我有 ID 的值,但没有外部模型的模型对象。

我尝试添加 UserDemandeMapper 一个带有 db_name 的元类,但没有任何效果。

由于我不是迁移专家,而且 django 的这一面有点模糊,所以我需要帮助。


提前致谢。
达米安

django database migration rename many-to-one
1个回答
0
投票

我尝试添加 UserDemandeMapper 一个带有 db_name 的元类,但是 没有任何效果。

如果这不是您问题中的拼写错误,我建议尝试使用 db_table 而不是 db_name,就像您为其他课程所做的那样:

class UserDemandeMapper(models.Model):

    class Meta:
        db_table = "DEMANDE-PROJET_USERDEMANDEMAPPER" 
© www.soinside.com 2019 - 2024. All rights reserved.