0

私は Django のチュートリアルに従っています。これは基本的に、ブックマークを管理する Web アプリケーションの構築につながる一連の短い todo です。

- Django 1.4.2 を適切にインストールしました - プロジェクトとそのフォルダを作成しました (私の質問はそれに関連しています...) - データベース エンジン (sqlite3) を設定します - シンプルなWeb ページのメッセージ (Congrats youve created a webpage...) - 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 で 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」(サブフォルダーの 1 つ) に「ブックマーク」フォルダーを再度カットアンドペーストしましたが、うまくいくと思いました..しかし、うまくいきませんでした..約 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

maxlengthCharField の属性はありません。ありますmax_length。アンダースコアがありません

于 2013-02-02T22:14:27.567 に答える
2

このチュートリアルは、startapp がプロジェクトのアプリ ディレクトリにアプリ フォルダーを作成した古いバージョン用である可能性があります。これで、プロジェクト ディレクトリ (外側の 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置くだけ。Django 1.4 の新しいレイアウトにより、1 年前に同じ問題が発生しました ...bookmarksdjango_bookmarks.bookmarks

于 2013-02-02T22:27:28.987 に答える