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

重命名默认的 django 表。

我无法更改默认表名 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: 应用尚未加载。

【问题讨论】:

    标签: python python-3.x django django-models


    【解决方案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 中可以使用三种继承方式。

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

    【讨论】:

    • 在一些帖子中,他告知这是可能的。我遇到了进口问题。感谢收听
    • 你试图改变 Django 的内部实现;这是一个逻辑问题。 Session._meta 是私人的东西,不要修改;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 2020-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多