2

我正在尝试将百日草连接到 django-cms 3.0

我推出了百日草,效果很好。现在我正试图开始改变风格。更具体地说templates/zinnia/skeleton.html,覆盖。

一旦我添加模板以覆盖原始模板 - url 反向在失败时开始。

NoReverseMatch at /en-us/blog/
Reverse for 'entry_archive_index' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []

所有的 url 都使用命名空间,{% url 'zinnia:entry_archive_index' %}但在 shell 中反向也只是失败。

还能做些什么来调试它?也许是因为本地化?

我有网址配置:

from django.conf.urls import patterns, url, include
from django.conf.urls.i18n import i18n_patterns
from django.contrib import admin
from django.conf import settings

admin.autodiscover()

urlpatterns = i18n_patterns(
    '',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^blog/', include('zinnia.urls', namespace='zinnia')),
    url(r'^comments/', include('django.contrib.comments.urls')),
    url(r'^tinymce/', include('tinymce.urls')),
    url(r'^', include('cms.urls')),
)

if settings.DEBUG:
    urlpatterns = patterns(
        '',
        url(r'^media/(?P<path>.*)$', 'django.views.static.serve',
            {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
        url(r'', include('django.contrib.staticfiles.urls')),
    ) + urlpatterns

设置:

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.admin',
    'django.contrib.sites',
    'django.contrib.comments',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.contenttypes',
    'my_main_django_cms_app',
    'cms',
    'mptt',
    'menus',
    'south',
    'sekizai',
    'djangocms_text_ckeditor',
    'djangocms_picture',
    'djangocms_inherit',
    'djangocms_googlemap',
    'cmsplugin_contact',

    'tinymce',
    'tagging',
    'zinnia_threaded_comments',
    'zinnia',
    'cmsplugin_zinnia',
)

而 my_main_django_cms_app 结构是

.
├── cms_plugins.py
├── forms.py
├── __init__.py
├── manage.py
├── models.py
├── settings.py
├── static
├── templates
│   ├── base.html
│   ├── home.html
│   └── zinnia
│       └── skeleton.html
├── urls.py
├── wsgi.py

还有我的版本:

Django==1.6.5
Pillow==2.4.0
South==0.8.4
argparse==1.2.1
beautifulsoup4==4.3.2
cmsplugin-contact==1.0.0
cmsplugin-zinnia==0.6
django-app-namespace-template-loader==0.1
django-blog-zinnia==0.14.1
django-classy-tags==0.5.1
django-cms==3.0
django-mptt==0.6.0
django-reversion==1.8.1
django-sekizai==0.7
django-tagging==0.3.2
django-tinymce==1.5.2
django-xmlrpc==0.1.5
djangocms-admin-style==0.2.2
djangocms-googlemap==0.0.5
djangocms-inherit==0.0.1
djangocms-picture==0.0.2
djangocms-text-ckeditor==2.1.6
gevent==1.0.1
greenlet==0.4.2
gunicorn==19.0.0
my_main_django_cms_app==0.1
html5lib==1.0b3
ipdb==0.8
ipython==2.1.0
psycopg2==2.5
pyparsing==2.0.2
pytz==2014.4
six==1.7.2
wsgiref==0.1.2
zinnia-threaded-comments==0.2
4

2 回答 2

1

几天来,我一直在尝试将 zinnia 集成到 django cms 中,这是我的经验,这让我可以使用我自己的 django cms 模板进行 zinnia,但我仍然没有得到提供的cmsplugin_zinnia菜单工作。

与您的设置相比,我进行了以下更改:

  • 删除zinnia了命名空间,所以url(r'^blog/', include('zinnia.urls', namespace='zinnia'))变成url(r'^blog/', include('zinnia.urls')).
  • 添加app_name = 'zinnia'cmsplugin_zinnia.cmsapp.ZinniaApphook
  • 在demo_cmsplugin_zinniacms前后移动zinnia_ _ cmsplugin_zinniasettings.py

有了这个,我可以选择一个新Zinnia Weblog的Django CMS 页面,并Application按照Django CMS 文档中的建议Advanced Settings给它一个唯一的。页面名称或其 url/slug 字段无关紧要。Application Instance Name

从这里我可以想出我自己的skeleton.html,不参考zinnia任何东西,并zinnia.base.html扩展我的新骨架模板。

但是,此时cmsplugin_zinnia 文档建议:

  • '一旦注册了apphook,你可以删除in的包含,zinnia.urls然后urls.py重新启动服务器以查看它的全部效果。',

但相反,我得到了一个NoReverseMatch at /name_of_my_blog_app/例外,只有当我包含zinnia.urls上面没有namespace.

由于您的原始帖子已经过去了几个星期,您现在可能已经解决了这个问题。如果没有,我希望这能为您指明正确的方向。如果您在某个时候遇到相同的问题 ( EntryMenu not loaded) 并且能够解决,请告诉我。

于 2014-08-04T10:31:38.970 回答
0

通过使用 django-blog-zinnia 的开发版本,我不再看到“EntryMenu 未加载”。现在所有与菜单相关的错误都消失了。据我了解,这是由于百日草固有的命名空间问题。Fantomas42 看起来在开发版本中涵盖了它。

它已在https://github.com/django-blog-zinnia/cmsplugin-zinnia/issues/29上进行跟踪

于 2014-08-23T07:44:40.893 回答