3

今天遇到一个小问题。通过一些研究很容易解决,但想把它扔在这里,以防有人有类似的东西。

我的应用文件布局是这样的:

>cart
-->Models
----> __init__.py
----> cart.py
----> items.py
--> __init__.py

所以我显然没有标准models.py文件。我想运行python manage.py sqlall cart以查看将其插入到我的 SQL Server 数据库中的 sql 代码。问题是,每次我运行该代码时,它都没有返回任何内容。解决方法是什么?

4

1 回答 1

2

嗯,这是有道理的,因为它正在寻找一个models.py文件而不是找到一个,只有Models子模块。

您必须在每个子模型项上使用app_label 。因此cart.pyitems.py文件都需要对其Meta标签进行编辑才能具有:

class Meta:
    app_label="cart"

这告诉 Django 这个模型明确地属于那个应用程序。正如 Django 文档所说,

如果模型存在于标准 models.py 之外(例如,如果应用程序的模型在 myapp.models 的子模块中),则模型必须定义它属于哪个应用程序

然后,该sqlall <app>命令也应该按照您的意愿工作。

于 2013-07-12T15:27:00.093 回答