2015-03-12 3 views
0

Я пытаюсь добавить django-seo на свой сайт. Но я не могу справиться с настройкой. Я следил за инструкциями, но возникает ошибка.django-seo setup, модели еще не загружены

Это то, что я сделал:

  1. установлен Джанго-сео packacge
  2. Добавлено rollyourown.seo в INSTALED_APPS
  3. Созданный seo.py файл в моем сайте приложения контента

И это то, что я написал в файле seo.py:

from rollyourown import seo 

class Metadata(seo.Metadata): 
    title  = seo.Tag(head=True, max_length=68) 
    description = seo.MetaTag(max_length=155) 
    keywords = seo.KeywordTag() 
    heading  = seo.Tag(name="h1") 

    class Meta: 
     seo_views = ('SiteContent',) 
     seo_models = ('SiteContent',) 

Когда класс Meta удален, я не могу добавить метатеги в contnet через Django Admin Site (я зарегистрировал его на сайте администратора). Я читал, что django-seo использует get_absolute_url(), чтобы справиться с этим. Но в моем приложении для сайта я не использую эту функцию, чтобы предоставить несколько утилит для многоязычности.

Но если я добавить мета-класс, то я получаю эту ошибку:

Traceback (most recent call last): 
    File "F:/Site/manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "F:\Python27\lib\site-packages\django\core\management\__init__.py", line 385, in execute_from_command_line 
    utility.execute() 
    File "F:\Python27\lib\site-packages\django\core\management\__init__.py", line 354, in execute 
    django.setup() 
    File "F:\Python27\lib\site-packages\django\__init__.py", line 21, in setup 
    apps.populate(settings.INSTALLED_APPS) 
    File "F:\Python27\lib\site-packages\django\apps\registry.py", line 108, in populate 
    app_config.import_models(all_models) 
    File "F:\Python27\lib\site-packages\django\apps\config.py", line 202, in import_models 
    self.models_module = import_module(models_module_name) 
    File "F:\Python27\lib\importlib\__init__.py", line 37, in import_module 
    __import__(name) 
    File "F:\Python27\lib\site-packages\djangoseo-1.0-py2.7.egg\rollyourown\seo\models.py", line 10, in <module> 
    __import__(module_name) 
    File "F:\Site\SiteContent\seo.py", line 5, in <module> 
    class Metadata(seo.Metadata): 
    File "F:\Python27\lib\site-packages\djangoseo-1.0-py2.7.egg\rollyourown\seo\base.py", line 166, in __new__ 
    options = Options(Meta, help_text) 
    File "F:\Python27\lib\site-packages\djangoseo-1.0-py2.7.egg\rollyourown\seo\options.py", line 19, in __init__ 
    self._set_seo_models(meta.pop('seo_models', [])) 
    File "F:\Python27\lib\site-packages\djangoseo-1.0-py2.7.egg\rollyourown\seo\options.py", line 96, in _set_seo_models 
    seo_models.extend(models.get_models(app)) 
    File "F:\Python27\lib\site-packages\django\db\models\__init__.py", line 54, in alias 
    return getattr(loading, function_name)(*args, **kwargs) 
    File "F:\Python27\lib\site-packages\django\utils\lru_cache.py", line 101, in wrapper 
    result = user_function(*args, **kwds) 
    File "F:\Python27\lib\site-packages\django\apps\registry.py", line 168, in get_models 
    self.check_models_ready() 
    File "F:\Python27\lib\site-packages\django\apps\registry.py", line 131, in check_models_ready 
    raise AppRegistryNotReady("Models aren't loaded yet.") 
django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet. 

Я пытался diffrent решения, но ничего не помогло.

+0

был ли у вас запущен ./manage.py syncdb? – levi

+0

Конечно, я побежал. И я до сих пор не могу добавить метаданные. – MNowator

ответ

0

Django-SEO не совместим с Django 1.7, который является первой версией Django, которая включает в себя AppRegistry.

Откат к Django 1.6.x или удаление Django-SEO.

0

Я получил это работает, изменяя get_query_set() для get_queryset() (изменено в django1.8) в файле rollyourown \ сео \ backends.py

0

Как оригинальный Django-SEO больше не поддерживается, эти ребята сделали и поддерживать свою собственную версию/fork Django-SEO. Я использую его с Django 1.8.8, поддерживается Python 3. https://github.com/whyflyru/django-seo

Смежные вопросы