Python Django未为模型创建db表(既不使用syncdb也不使用South)
我在Centos VPS上有一个Django项目 我创建了一些模型并对它们进行了调试,这样它们就可以进行验证,并且不会出现错误。 我将它们放在myapp的“models”文件夹中,并已将每个模型添加到此目录的init文件中,例如: 从类别导入类别 我将应用程序添加到settings.pyPython Django未为模型创建db表(既不使用syncdb也不使用South),python,django,django-south,syncdb,Python,Django,Django South,Syncdb,我在Centos VPS上有一个Django项目 我创建了一些模型并对它们进行了调试,这样它们就可以进行验证,并且不会出现错误。 我将它们放在myapp的“models”文件夹中,并已将每个模型添加到此目录的init文件中,例如: 从类别导入类别 我将应用程序添加到settings.pyINSTALLED_APPS并运行: Python manage.py syncdb 它似乎工作得很好,并且添加了除我的应用程序之外的所有表 然后我安装了South并将其添加到已安装的应用程序中,然后再次尝试s
INSTALLED_APPS
并运行:
Python manage.py syncdb
它似乎工作得很好,并且添加了除我的应用程序之外的所有表
然后我安装了South并将其添加到已安装的应用程序中,然后再次尝试syncdb并运行:
Python manage.py schemamigration myapp --initial
它正确地生成了文件,但其中没有任何内容(我的模型中没有任何表)
“models”文件夹中的示例文件(usertype.py)
你知道这里会出什么问题吗?为什么我找不到任何东西来检测我的模型?你误解了与south合作的过程。South不仅仅是另一个应用程序,它还是一个管理工具。你的应用程序需要从一开始就是一个南方应用程序,或者转换成南方应用程序。话虽如此,过程是这样的:
python manage.py schemamigration myapp --initial
python manage.py migrate
manage.py将\u转换为\u south myapp
project/
myapp/
models/
__init__.py
bar.py
您需要bar.py
如下所示:
from django.db import models
class Foo(models.Model):
# fields...
class Meta:
app_label = 'myapp' #you need this!
from bar import Foo
而\uuuu init\uuuu.py
需要如下所示:
from django.db import models
class Foo(models.Model):
# fields...
class Meta:
app_label = 'myapp' #you need this!
from bar import Foo
确保它看起来像这样,它就会工作
更新日期2014年8月18日
票改成了,因为显然app_标签存在更大的问题。哈扎 运行以下命令
python manage.py makemigrations yourappname
python manage.py migrate
注意它对我来说适用于django 1.7版本。我正在使用--initial,因为它是一款新的应用程序,db中没有任何型号。我尝试了“manage.py convert_to_south myapp”只是为了看看发生了什么,它说“这个应用程序没有模型;这个命令用于已经有模型syncdb'd的应用程序。制作一些模型,然后使用./manage.py schemamigration myapp--initial。”如前所述,我可以运行--initial并按预期执行,除了生成的文件中没有任何内容之外,它不会检测到任何模型。这些都是新模型,没有一个在db.1中。你在文章中描述它的方式与我描述它的方式不同。你能分享模特吗?还有您认为相关的任何其他信息。我不认为我看到了整个问题,雪人现在已经按照您的建议从“models”文件夹中的
\uuu init\uuu.py
中删除了引用。谢谢,虽然它没有改变我的问题,因为没有检测到任何模型。我不希望它改变任何东西,我只是提到了它。酷,我现在已经添加了一个模型的例子来描述上述问题。请编辑您的原始帖子,并添加您的评论作为其一部分,像这样不可读我现在已经将其添加到原始帖子中,需要更多信息吗?请查看我的其他评论请查看我的编辑以获得更新的解决方案。