0

我正在关注关于 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),
)

所以,所以,一切都像一个魅力。

然后我不得不处理数据库。我有:

- 通过在 models.py 中键入以下内容创建数据模型:

from django.db import models

class Link(models.Model):
    url = models.URLField(unique=True)

-在 settings.py 中定义了 INSTALLED 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

所以,那时,我将“书签”文件夹移动到 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'

我看不出有什么问题。我按照教程进行了操作(除非我无法同步表格并且我求助于将“书签”文件夹粘贴到其他地方......)......并且文件夹树看起来很标准。为什么它没有找到“书签”模块?

任何帮助都可以:-)谢谢!

4

3 回答 3

4

CharField没有maxlength属性。但是有max_length。你错过了下划线

于 2013-02-02T22:14:27.567 回答
2

该教程可能适用于旧版本,其中 startapp 在项目 app 目录中创建了 app 文件夹。现在它已在项目目录(外部 django_bookmarks 文件夹)中创建,因此您的 SETTINGS.py 应如下所示:

INSTALLED_APPS = (
     'django.contrib.auth',
     'django.contrib.contenttypes',
     'django.contrib.sessions',
     'django.contrib.sites',
     'bookmarks',
)
于 2013-02-02T22:27:54.090 回答
1

INSTALLED_APPS,只放bookmarks而不放django_bookmarks.bookmarks。由于 Django 1.4 中的新布局,一年前我遇到了同样的问题......

于 2013-02-02T22:27:28.987 回答