Django FeinCMS и проблема с расширением страницы - PullRequest
1 голос
/ 13 марта 2011

Я экспериментирую с Расширениями страниц и FeinCMS 1.2.1.

Я бы хотел создать это простое расширение страницы:

from django.db import models

def register(cls, admin_cls):
    cls.add_to_class(models.TextField())

но я продолжаю получать эту ошибку:

AttributeError: 'module' object has no attribute 'TextField'

Пакет, содержащий расширение, называется dev.extensions, а модуль categories, я добавил его в путь Python, и расширение зарегистрировано в Page.register_extensions('dev.extensions.categories').

Мне интересно, что я делаю не так, пожалуйста, помогите.

Ниже приведена полная трассировка стека.

c:\sandbox\projects\feindev>python manage.py runserver
Traceback (most recent call last):
  File "manage.py", line 13, in <module>
    execute_manager(settings)
  File "c:\sandbox\environments\feincms-1.2
.1\lib\site-packages\django\core\management\__init__.py", line 436, in execute_m
anager
    setup_environ(settings_mod)
  File "c:\sandbox\environments\feincms-1.2
.1\lib\site-packages\django\core\management\__init__.py", line 419, in setup_env
iron
    project_module = import_module(project_name)
  File "c:\sandbox\environments\feincms-1.2
.1\lib\site-packages\django\utils\importlib.py", line 35, in import_module
    __import__(name)
  File "c:\sandbox\projects\feindev\..\fein
dev\__init__.py", line 52, in <module>
    Page.register_extensions('dev.extensions.types')
  File "c:\sandbox\environments\feincms-1.2
.1\lib\site-packages\feincms\models.py", line 270, in register_extensions
    cls.register_extension(fn)
  File "c:\sandbox\environments\feincms-1.2
.1\lib\site-packages\feincms\module\page\models.py", line 564, in register_exten
sion
    register_fn(cls, PageAdmin)
  File "c:\sandbox\projects\feindev\dev\ext
ensions\types\__init__.py", line 4, in register
    cls.add_to_class(models.TextField())
AttributeError: 'module' object has no attribute 'TextField'

1 Ответ

3 голосов
/ 13 марта 2011

Может быть, модели переназначаются где-то на другой модуль, прежде чем ваша функция регистрации будет запущена?

Попробуйте изменить свой код на это:

from django.db import models as django_models

def register(cls, admin_cls):
    cls.add_to_class('field_name_here', django_models.TextField())
...