2013-02-02 35 views
0

我正在關注Django上的一個教程,該教程基本上是一系列簡短的待辦事項,這些教程導致構建Web應用程序來管理書籤。Django項目 - 無法同步數據表 - syncdb(錯誤:無模塊名爲XYZ)

到目前爲止,我: - 安裝的Django 1.4.2正確 - 創建的項目和它的文件夾(低,我的問題是有關那個......) - 設置數據庫引擎(sqlite3的) - 定義views.py在網頁上顯示簡單的消息(恭喜你已經創建了一個網頁...) - 爲urls.py中的主頁定義了一個條目。看下面:

from django.conf.urls.defaults import * 
from bookmarks.views import * 
urlpatterns = patterns('', 
(r'^$', main_page), 
) 

所以,所以,一切工作就像一個魅力。然後我不得不在數據庫上工作。我有:

-created數據模型通過鍵入models.py如下:

from django.db import models 

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

-defined已安裝應用的settings.py如下:

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」它工作正常。然後,我將「書籤」替換爲原來的位置,就像上面的樹中顯示的一樣。所以我繼續想我贏了...

然後,我不得不在數據書籤數據模型上工作。我跟着教程的指令,並輸入了在書籤以下/ 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(最大長度= 200))和線

Python27/lib/site-packages/django/db/models/fields/__init__ 

和最後消息是:

TypeError: __init__() got an unexpected keyword argument 'maxlength' 

我看不出有什麼不對。我遵循教程 (除非我無法同步表格,並且我要求在其他地方粘貼「書籤」文件夾......) ...和文件夾樹似乎非常標準。 爲什麼它沒有找到「書籤」模塊?

任何幫助將做:-)謝謝!

+0

MAXLENGTH = MAX_LENGTH –

回答

4

CharField沒有maxlength屬性。但有max_length。你錯過了下劃線

1

INSTALLED_APPS以內,只能放bookmarks而不是django_bookmarks.bookmarks。由於Django 1.4中的新佈局,一年前我遇到了同樣的問題...

+0

感謝這個幫助!我將它改爲'書籤',並與migajek的精確觀察(max_length)=一起使用! – Sylvain

2

本教程可能適用於較早的版本,其中startapp在項目應用程序目錄中創建應用程序文件夾。現在,它是在項目目錄(外django_bookmarks文件夾)創建的,因此SETTINGS.py應該是這樣的:

INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'bookmarks', 
) 
+0

感謝您的幫助!我將它改爲'書籤',並與migajek的精確觀察(max_length)=一起使用! – Sylvain

相關問題