django创建model出错: ImportError: No module named

刀仔割大树 2016-02-01 02:09:42
环境:Django-1.9.1-py2.7 + centos 3.10.0 + mysql5.0
教程:http://www.runoob.com/django/django-model.html

我按着教程走,创建了HelloWorld的proj,之后创建TestModel的app,这时候我的目录是这样的:
[root@VM_9_170_centos HelloWorld]# tree
.
|-- HelloWorld
| |-- __init__.py
| |-- __init__.pyc
| |-- db.sqlite3
| |-- settings.py
| |-- settings.pyc
| |-- templates
| | |-- base.html
| | `-- hello.html
| |-- urls.py
| |-- urls.pyc
| |-- view.py
| |-- view.pyc
| |-- wsgi.py
| `-- wsgi.pyc
|-- TestModel
| |-- __init__.py
| |-- __init__.pyc
| |-- admin.py
| |-- admin.pyc
| |-- apps.py
| |-- migrations
| | `-- __init__.py
| |-- models.py
| |-- models.pyc
| |-- tests.py
| `-- views.py
|-- db.sqlite3
`-- manage.py

HelloWorld/settings.py:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'TestModel',
]

TestModel/models.py
class Test(models.Model):
name = models.CharField(max_length=20)

我执行命令: python manage.py syncdb
报错:
Unknown command: 'syncdb'
Type 'manage.py help' for usage.

我怀疑跟教程目录不一样,把TestModel mv 到HelloWorld里:
mv TestModel/ HelloWorld/

重新执行: python manage.py syncdb
报错:
[root@VM_9_170_centos HelloWorld]# python manage.py syncdb
Traceback (most recent call last):
File "manage.py", line 9, in <module>
execute_from_command_line(sys.argv)
File "/usr/lib/python2.7/site-packages/Django-1.9.1-py2.7.egg/django/core/management/__init__.py", line 353, in execute_from_command_line
utility.execute()
File "/usr/lib/python2.7/site-packages/Django-1.9.1-py2.7.egg/django/core/management/__init__.py", line 327, in execute
django.setup()
File "/usr/lib/python2.7/site-packages/Django-1.9.1-py2.7.egg/django/__init__.py", line 18, in setup
apps.populate(settings.INSTALLED_APPS)
File "/usr/lib/python2.7/site-packages/Django-1.9.1-py2.7.egg/django/apps/registry.py", line 85, in populate
app_config = AppConfig.create(entry)
File "/usr/lib/python2.7/site-packages/Django-1.9.1-py2.7.egg/django/apps/config.py", line 90, in create
module = import_module(entry)
File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named TestModel

网上看了很多,基本都是版本问题,但是我这里INSTALLED_APPS应该没错。求助高手解答。
...全文
1675 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
beta_safe 2019-06-21
  • 打赏
  • 举报
回复
参考一下: from ..TestModel import models # 数据库操作 def testdb(request): test1 = models.Test(name='runoob') test1.save() return HttpResponse("<p>数据添加成功!</p>")
beta_safe 2019-06-21
  • 打赏
  • 举报
回复
from HelloWorld.TestModel import models # 数据库操作 def testdb(request): test1 = models.Test(name='runoob') test1.save() return HttpResponse("<p>数据添加成功!</p>")
hellenlee22 2019-05-20
  • 打赏
  • 举报
回复
你好,我也遇到这个问题了, 参考“从1.7开始django加入了数据库迁移功能,并且在1.9版本中取消了sysdb命令,所以你运行这个操作肯定是不对的,应该这样: python manage.py makemigrations your_app_label #生成数据库迁移脚本。 python manage.py migrate your_app_label #执行脚本完成” 也不行哦, 还有别的方法吗 ? 我练习的是https://www.runoob.com/django/django-model.html 的项目
python运维技术 2016-02-18
  • 打赏
  • 举报
回复
从1.7开始django加入了数据库迁移功能,并且在1.9版本中取消了sysdb命令,所以你运行这个操作肯定是不对的,应该这样: python manage.py makemigrations your_app_label #生成数据库迁移脚本。 python manage.py migrate your_app_label #执行脚本完成
刀仔割大树 2016-02-17
  • 打赏
  • 举报
回复
up一下。。。。
刀仔割大树 2016-02-02
  • 打赏
  • 举报
回复
up一下。。。。
寻找Python之禅 2016-02-02
  • 打赏
  • 举报
回复
@panghuhu250 应该不是 "Unknown command: 'syncdb'"错误消失 而是在这个错误之前就出错了 加载TestModel失败
panghuhu250 2016-02-01
  • 打赏
  • 举报
回复
syncdb改成migrate了. 很好奇的是挪了TestModel后, "Unknown command: 'syncdb'"错误居然消失了.
寻找Python之禅 2016-02-01
  • 打赏
  • 举报
回复
楼主,根据目录内容看,TestModel目录应该是和HelloWorld目录同级的,至于出现"Unknown command: 'syncdb'",可能是django1.9版本中支持的选项参数由syncdb变成了其它单词,没使用过1.9版本,只是猜测, 可以输入命令行 python manage.py 查看支持的选项单词中有没有syncdb 在[django]节中

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧