重命名默认的 django 表

Posted

技术标签:

【中文标题】重命名默认的 django 表【英文标题】:Rename the default django table 【发布时间】:2021-06-05 11:34:01 【问题描述】:

我无法更改默认表名 django_sessions

有人可以帮忙吗?

感谢收听

初始化.py

from django.contrib.sessions.models import Session
Session._meta.db_table = "my_session"

文件“/webapps/desk/init.py”,第 1 行,在 |从 django.contrib.sessions.models 导入会话 |文件 “/usr/local/lib/python3.8/site-packages/django/contrib/sessions/models.py”, 第 1 行,在 |来自 django.contrib.sessions.base_session 导入 ( | 文件 “/usr/local/lib/python3.8/site-packages/django/contrib/sessions/base_session.py”, 第 26 行,在 |类 AbstractBaseSession(models.Model): | 文件 "/usr/local/lib/python3.8/site-packages/django/db/models/base.py", 第 108 行,在 | app_config = apps.get_containing_app_config(模块) |文件 “/usr/local/lib/python3.8/site-packages/django/apps/registry.py”,行 253,在 get_ contains_app_config | self.check_apps_ready() | 文件“/usr/local/lib/python3.8/site-packages/django/apps/registry.py”, 第 136 行,在 check_apps_ready | raise AppRegistryNotReady("应用程序 尚未加载。”)| django.core.exceptions.AppRegistryNotReady: 应用尚未加载。

【问题讨论】:

【参考方案1】:

在 app 文件夹下的 __init__.py 文件中放置该行。不在模型中。

appname/__init__.py

(不在 models.py 中)

from django.contrib.sessions.models import Session
Session._meta.db_table = "your_session_table_name"

【讨论】:

错误 - 文件“/webapps/desk/__init__.py”,第 1 行,在 DESK |从 django.contrib.sessions.models 导入会话台 | 中的文件“/usr/local/lib/python3.8/site-packages/django/contrib/sessions/models.py”,第 1 行 导入会话时出错 @marcelo.delta ./python manage.py sql sessions 请运行此命令。 会是什么?【参考方案2】:

Session 模型是 Django 的内部实现,你不能这样做。在您考虑的任何情况下,您都可以使用Model Inheritance。

在 Django 中可以使用三种继承方式。

    通常,您只想使用父类来保存信息 您不想为每个子模型输入。这 类永远不会被孤立地使用,所以抽象基 课程就是你所追求的。 如果您要对现有模型进行子类化 (也许完全来自另一个应用程序)并且想要每个 模型要有自己的数据库表,多表继承是 要走的路。 最后,如果你只想修改Python级别 模型的行为,而不以任何方式更改模型字段, 您可以使用代理模型。

【讨论】:

在一些帖子中,他告知这是可能的。我遇到了进口问题。感谢收听 你试图改变 Django 的内部实现;这是一个逻辑问题。 Session._meta 是私人的东西,不要修改;

以上是关于重命名默认的 django 表的主要内容,如果未能解决你的问题,请参考以下文章

重命名默认的 django 表

Oracle查询语句中重命名的列在WHERE中无效?

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

复制重命名覆盖mod是啥意思?

如何重命名用户创建的 SYSUSERS 表?

bat脚本照片复制重命名?