有什么方法可以让syncdb拉入models.py中没有的模型吗?

发布于 2024-12-26 06:59:37 字数 192 浏览 0 评论 0原文

我有一个文件,其中包含嵌入在我的应用程序深处的模型,而不是在 models.py 文件或模型目录中。

基本上,它是一个指向旧数据库上的表的文件,这就是我将其放在单独文件中的原因。

但是,现在我正在尝试设置测试版本,我需要能够通过syncdb 创建所有表。

我有什么办法可以做到这一点吗?或者我必须使用 SQL 手动创建表?

I have a file filled with models embedded deep within my app and not in a models.py file or models directory.

Basically it's a file that points to tables on a legacy database, which is why I put it in a separate file.

However, now that I'm trying to set up a testing version, I need to be able to create all the tables via syncdb.

Is there any way for me to do this? Or must I create the tables manually using SQL?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

笨死的猪 2025-01-02 06:59:37

temp_app/models.py

from my.deep.in.code.modelfile import model1
from my.deep.in.code.modelfile import model2

将 temp_app 添加到已安装的应用程序(确保目录中还有 init.py)

运行 Syncdb

从已安装的应用程序中删除 temp_app

temp_app/models.py

from my.deep.in.code.modelfile import model1
from my.deep.in.code.modelfile import model2

Add temp_app to installed apps (make sure you also have init.py in the dir)

Run Syncdb

Remove temp_app from installed apps

九局 2025-01-02 06:59:37

额头拍打时间

好的,这部分很关键:如果您确实从项目中的其他位置导入模型,而不是在正常的 models.py 文件中,请确保添加:

class Meta:
    app_label = 'foo'

否则,模型将被忽略通过同步数据库!

我确实按照 Ted 所写的内容进行了一些尝试,但由于某种原因,直到我添加了 app_label 部分,syncdb 才能够创建模型。

forehead slap time

Okay, so this part is key: if you do import models from elsewhere in your project, not within the normal models.py files, make sure you add:

class Meta:
    app_label = 'foo'

Otherwise, the models will be ignored by syncdb!

I did try something along the lines of what Ted wrote but for some reason it wasn't until I added the app_label part that syncdb was able to create the models.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文