我试图将我的数据库应用程序连接到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
答案 0 :(得分:1)
这可能是models.py的问题。 您似乎按如下方式编写代码。
foo = models.URLFIELD()
“models”模块没有URLFIELD()。
您应该将其更改为URLField()。
答案 1 :(得分:0)
在python导入文件之前,您需要将__init__.py
文件(可以为空)添加到文件夹tut1.books中。请参阅此答案:What is __init__.py for?