Python — Django CMS 2.1.0 Tutorial Rus
По django не так уж и много документации, по django-cms и того меньше. Ещё огорчает и то, что стабильная версия django-cms работает только с django версии 1.1.X.
Так как я люблю всё новое и свежее решил ставить всё самое последнее - django-cms-2.1.0.beta3, django-1.2.1, а питон, к слову, 2.6. Но, из-за отсутствия достаточной документации процесс запуска проекта с django-cms оказался не самым приятным, хотя на самом деле — всё элементарно.
В основе заметки Django CMS Tutorial, распространяемый вместе с последней версией django.
-
Я правда не знаю где Вы ищите документацию, но вот я почему-то знаю как минимум два места, где можно получить исчерпывающую информацию по django.
Кстати говоря. Django не CMS, а Framework.
-
-
Речь как бы о Django CMS, который есть отдельный продукт на джанге, но не сама джанга. Читайте внимательнее
-
-
Вы тогда пишите понятнее. Я, конечно, извиняюсь что может быть написал грубо, но уже не раз натыкался на то, что django называют cms. Поэтому след. раз советую писать примерно так: "CMS основанной на Django, под названием Django CMS". Как-то так. Это лишь пример.
-
-
Писал-то как бы не я
-
-
Что писали не Вы? Анонс Ваш, статья по ссылке тоже.
З.Ы. Статью по ссылке не читал.
-
-
Писал вообще-то Ymilij, а я - не он
-
-
Пардон. Что-то не заметил.
-
Казалось бы старался максимально понятно, просто и наглядно написать, а вот же на.
-
-
не всё идеально. Возможно, если бы я прочитал пост в надежде найти что-то новое для себя, у меня бы не возникло таких мыслей :)
-
полезно. даже если мне на поверхностный просмотр все уже кажется элементарным...
для первого раза почитать - супер.
но
вы где mptt нарыли? в pip есть две версии, в портаже ни одной, какая?. это раз.
во вторых, ради интереса, поменяйте базу на mysql, пожалуйста.
У меня возникла проблемка именно с ней (sqlite - ok, но ясно не то, что надо)
исчерпывающее описание тут
-
-
Спасибо.
mptt распространяется вместе с django-cms:
$ ls /usr/lib/python2.6/site*/django_cms*
cms EGG-INFO menus mptt publisher
Работает с mysql. Базу создал так:
CREATE DATABASE testdjango;
GRANT ALL PRIVILEGES ON testdjango.* TO 'root' IDENTIFIED BY 'p23Xy4A'; FLUSH PRIVILEGES;
Затем прописал в settings.py:
DATABASES = {
'default': {
'ENGINE': 'mysql',
'NAME': 'testdjango',
'USER': 'root',
'PASSWORD': 'p23Xy4A',
'HOST': '',
'PORT': '',
}
}
Затем python manage.py syncdb - он создал таблицы, юзера, всё, как положено.
Запустил, проверил, работает.
-
-
Сплю уже, спалил пароль. Кто-нибудь, потрите, пожалуйста.
-
Что работает?
Модель с деревом создали? Дерево получается?
какая версия MySQLdb?
сделайте, пожалуйста такую, как я выше по ошибке дал, syncdb (оно то отработает...) и покажите show create table *таблица этой модели*
-
-
dev-python/mysql-python-1.2.3_rc1
dev-db/mysql-5.1.46
Создал приложение testmodulesdjango с вашей моделью.
Прописал в installed app. Сделал syncdb. Запустил сервер, ошибок нет, работает всё вроде без изменений. Модель никак не использовал.
Код, создающий таблицу для модели:
~ $ python manage.py sql testmodulesdjango
1
2
3
4
5
6
7
8
9
10
11
12
13
|
BEGIN;
CREATE TABLE `testmodulesdjango_category` (
`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
`name` varchar(50) NOT NULL UNIQUE,
`parent_id` integer,
`lft` integer UNSIGNED NOT NULL,
`rght` integer UNSIGNED NOT NULL,
`tree_id` integer UNSIGNED NOT NULL,
`level` integer UNSIGNED NOT NULL
)
;
ALTER TABLE `testmodulesdjango_category` ADD CONSTRAINT `parent_id_refs_id_e7def203` FOREIGN KEY (`parent_id`) REFERENCES `testmodulesdjango_category` (`id`);
COMMIT; |
-
-
ну еще три шага... :)
1
2
3
4
5
|
python manage.py shell
>>> from **MODELS** import *YOUR_MODEL*as model
>>> root=model(name='root')
>>> root.save()
|
ну и версии MySQLdb и
>>> mptt.VERSION
(0, 3, 'pre')
?
то я уже с ума схожу...
-
-
пардон, версии не прочел. биндинг тот же. ну из того что у меня mysql5.0 думаю ничего не следует..
но фишка то в том, что с dj-сms или без - mptt не работает..
-
При попытке сделать:
>>> from testmodulesdjango.models import Category as model
Ругается, мол:
AlreadyRegistered: The model Category has already been registered.
Что, в прочем, не удивительно, ведь мы сделали:
mptt.register(Category, order_insertion_by=['name'])
в модели (или я не прав? - я совсем-совсем новичок в django)
Соответственно, команды:
>>> root=model(name='root')
>>> root.save()
не работают, так как у модели Category имя другое.
Как узнать её имя (не Category ли, случайно?) и имеет ли смысл выполнять вышеупомянутые команды, если модель уже зарегистрирована?
Может быть проблема действительно в том, что у вас почему-то не работает mptt, тогда и:
>>> from **MODELS** import *YOUR_MODEL* as model
>>> root=model(name='root')
>>> root.save()
выполнять не надо?
Как посмотреть версию mptt не пойму.
-
-
AlreadyRegistered
mptt.register(Category, order_insertion_by=['name'])
закомментить ее (нужна только перед syncdb, однажды)
Как посмотреть версию mptt
1
2
|
import mptt
mptt.VERSION |
-
-
Закоментил mptt.register, проделал вышеописанные команды.
Вывод:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
$ python manage.py shell
Python 2.6.5 (release26-maint, Jul 13 2010, 23:02:34)
[GCC 4.4.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from testmodulesdjango.models import Category as model
>>> root=model(name='root')
>>> root.save()
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/usr/lib64/python2.6/site-packages/django/db/models/base.py", line 435, in save
self.save_base(using=using, force_insert=force_insert, force_update=force_update)
File "/usr/lib64/python2.6/site-packages/django/db/models/base.py", line 528, in save_base
result = manager._insert(values, return_id=update_pk, using=using)
File "/usr/lib64/python2.6/site-packages/django/db/models/manager.py", line 195, in _insert
return insert_query(self.model, values, **kwargs)
File "/usr/lib64/python2.6/site-packages/django/db/models/query.py", line 1479, in insert_query
return query.get_compiler(using=using).execute_sql(return_id)
File "/usr/lib64/python2.6/site-packages/django/db/models/sql/compiler.py", line 783, in execute_sql
cursor = super(SQLInsertCompiler, self).execute_sql(None)
File "/usr/lib64/python2.6/site-packages/django/db/models/sql/compiler.py", line 727, in execute_sql
cursor.execute(sql, params)
File "/usr/lib64/python2.6/site-packages/django/db/backends/util.py", line 15, in execute
return self.cursor.execute(sql, params)
File "/usr/lib64/python2.6/site-packages/django/db/backends/mysql/base.py", line 86, in execute
return self.cursor.execute(query, args)
File "/usr/lib64/python2.6/site-packages/MySQLdb/cursors.py", line 175, in execute
if not self._defer_warnings: self._warning_check()
File "/usr/lib64/python2.6/site-packages/MySQLdb/cursors.py", line 89, in _warning_check
warn(w[-1], self.Warning, 3)
Warning: Field 'lft' doesn't have a default value
>>> import mptt
>>> mptt.VERSION
(0, 3, 'pre') |
Странные ошибки.
-
-
ну приехали. что и требовалось доказать.
апните чтоли вопрос на python.su по ссыле в начале треда...
а то мне никто там не верит.
хз.
-
-
Оставил там подтверждающий комментарий.
-
и спасибо за терпение.
зато теперь проблема общая ;)
-
-
Пожалуйста. Рад помочь :-)
-
Use Rails, Luke!
Рельсы, насколько я их щупал, более моццные, гибкие и удобные, нежели джанга. Да и питоновская идеология меня перестала привлекать давно... Джанга еще слишком молод и недоразвит по сравнению с рубишным решением.
-
-
нефанатично
-
-
я и не претендую на фаната ни одного из фреймов ;)
|
|
|
Последние посты
|
|
Последние комментарии
|
|
Изменения
|
|
Черновики (все)
|
|
Избранное (всё)
|
|
|