Я следую учебнику по Django, который представляет собой серию коротких задач, которые ведут к созданию веб-приложения для управления закладками.
До сих пор я: - правильно установил 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 следующим образом:
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", он работал нормально. Затем я заменил «закладки» на исходное место, как показано на дереве выше. Так что я продолжаю думать, что я победил...
Затем мне пришлось работать над моделью данных Bookmark Data. Я следовал указаниям руководства и набрал в 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». НО потом приходит сообщение об ошибке: нет модуля закладок. Поэтому я снова вставил папку «bookmarks» в «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'
Я не вижу, что случилось. Я следовал руководству (за исключением случаев, когда я не мог синхронизировать таблицы и прибегал к вставке папки «закладки» в другое место...) ... и дерево папок кажется довольно стандартным. Почему не находит модуль "закладки"?
Любая помощь будет делать :-) спасибо!