我正在关注Django的教程,该教程基本上是一系列简短的待办事项,可以构建一个管理书签的Web应用程序。
到目前为止,我已经: - 正确安装了Django 1.4.2 - 创建项目及其文件夹(低我的问题与...有关) - 设置数据库引擎(sqlite3) - 定义views.py以在网页上显示简单的消息(恭喜您创建了一个网页...) - 在urls.py中为主页面定义了一个条目。见下文:
from django.conf.urls.defaults import *
from bookmarks.views import *
urlpatterns = patterns('',
(r'^$', main_page),
)
所以,所以f,一切都像魅力一样。
然后我不得不在数据库上工作。我已经:
- 通过在models.py中输入以下内容来创建数据模型:
from django.db import models
class Link(models.Model):
url = models.URLField(unique=True)
- 在settings.py中定义了安装的APPS,如下所示:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django_bookmarks.bookmarks',
)
这是棘手的部分。我不得不同步数据表。所以我打字:
manage.py syncdb
但是我收到一条错误消息:没有书签模块
所以我检查了文件夹结构,如下所示
django_bookmarks
├── bookmarks
│ ├── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── django_bookmarks
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
因此,在那时,我将“bookmarks”文件夹移动到django_bookmarks(子文件夹一)。当我做“syncdb”时它工作正常。然后我将“书签”替换为原来的位置,如上图所示。所以我继续以为我胜利了......
然后,我不得不处理数据书签数据模型。我按照教程的指令在bookmarks / models.py中输入以下内容:
from django.contrib.auth.models import User
class Bookmark(models.Model):
title = models.CharField(maxlength=200)
user = models.ForeignKey(User)
link = models.ForeignKey(Link)
要创建表格,我必须再次输入“manage.py syncdb”。然后出现错误消息:没有书签模块。所以我再次在“django_bookmarks”(子文件夹)中剪切粘贴“书签”文件夹,认为它可以工作..但它没有...它打印了大约17行(Python追溯)其中第15行(或16 ..)是关于models.py(models.CharField(maxlength = 200))和
中的行Python27/lib/site-packages/django/db/models/fields/__init__
,最后一条消息是:
TypeError: __init__() got an unexpected keyword argument 'maxlength'
我没有看到什么是错的。我按照教程 (除非我无法同步表格,我在其他地方粘贴“书签”文件夹...) ...而文件夹树似乎非常标准。 为什么它找不到“书签”模块?
任何帮助都会:-)谢谢!
答案 0 :(得分:4)
CharField没有maxlength
属性。但有max_length
。你错过了下划线
答案 1 :(得分:2)
本教程可能适用于旧版本,其中startapp在项目应用程序目录中创建了app文件夹。现在它是在项目目录(外部django_bookmarks文件夹)中创建的,因此您的SETTINGS.py应如下所示:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'bookmarks',
)
答案 2 :(得分:1)
在INSTALLED_APPS
内,只放bookmarks
而不是django_bookmarks.bookmarks
。由于Django 1.4中的新布局,一年前我遇到了同样的问题......