django-seo设置中,尚未加载模型 [英] django-seo setting up, models aren't loaded yet

查看:118
本文介绍了django-seo设置中,尚未加载模型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将django-seo添加到我的网站中。但是我无法应付设置。我遵循了说明文档,但是发生了错误。

I'm trying to add django-seo into my site. But I can't cope with setting up. I followed instructions documentation, but error occurs.

这就是我所做的:


  1. 安装了django-seo packacge

  2. 将rollyourown.seo添加到INSTALED_APPS

  3. 在我的网站内容应用中创建了seo.py文件

这就是我写到seo.py文件中的内容:

And this is what I wrote into seo.py file:

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类删除后,我无法通过Django Admin Site(我在admin site中注册了它)将任何元标记添加到contnet。我读过django-seo使用get_absolute_url()来处理它。但是在我的站点应用程序中,我不使用此功能来提供更多的多语言实用程序。

When Meta class is removed, I can't add any meta tags to contnet via Django Admin Site( I registered it in admin site ). I've read that django-seo use get_absolute_url() to deal with it. But in my site app I don't use this function for provide more some utilities to multilanguage.

但是,如果我添加Meta类,则会出现此错误:

But if i add Meta class, i will get this error:

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.

我尝试了不同的解决方案,但无济于事。

I tried diffrent solutions but nothing helped.

推荐答案

由于不再支持原始的Django-SEO,因此这些人创建并支持自己的Django-SEO版本/ fork。我在Django 1.8.8中使用它,也支持Python 3。
https://github.com/whyflyru/django-seo

As original Django-SEO is not supported anymore, these guys made and support their own version / fork of Django-SEO. I use it with Django 1.8.8, Python 3 is supported too. https://github.com/whyflyru/django-seo

这篇关于django-seo设置中,尚未加载模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆