Django应用程序数据库错误:没有命名模块

时间:2013-10-03 08:15:23

标签: python django postgresql

我试图将我的数据库应用程序连接到django中的项目。成功连接psycopg和数据库。然后我开始通过

为它构建应用程序
python manage.py startapp books

并在models.py中编写了一些代码。

但是当我尝试将应用程序放入INSTALLED_APPS时,它会导致错误。

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'tut1.books',
# Uncomment the next line to enable the admin:
 'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',

所以,我在项目的文件夹中并输入命令行:

%>python manage.py syncdb
ImportError: No module named 'tut1.books'

如果我从INSTALLED_APPS删除我的应用程序,一切都很顺利。 我怀疑,链接应用程序必须有不同的语法。

试图将'tut1.books'改为'书'。导致另一个错误。

%>python manage.py syncdb
AttributeError:'module' object has no attribute 'URLFIELD'

project / tut1 /

中的文件和文件夹
   manage.py
   views.py
   /tut1/
   /templates/
   /books/

/ books /

中的文件
   __init__.py
   modules.py
   views.py
   tests.py

/ tut1 / tut1 /

中的文件
   __init__.py
   settings.py
   urls.py
   views.py
   wsgi.py

init .py默认为空。

检查了这个项目的PYTHONPATH。没什么奇怪的......

>>> import sys
>>> for i in sys.path:
      print(i)


C:\study\django\tut1
C:\Python33\Lib\idlelib
C:\Python33\lib\site-packages\setuptools-1.1.6-py3.3.egg
C:\Python33\python33.zip
C:\Python33\DLLs
C:\Python33\lib
C:\Python33
C:\Python33\lib\site-packages

2 个答案:

答案 0 :(得分:1)

这可能是models.py的问题。 您似乎按如下方式编写代码。

foo = models.URLFIELD()

“models”模块没有URLFIELD()。

您应该将其更改为URLField()。

答案 1 :(得分:0)

在python导入文件之前,您需要将__init__.py文件(可以为空)添加到文件夹tut1.books中。请参阅此答案:What is __init__.py for?