2014-06-18 2 views
2

Я пытаюсь соединить Цинния Джанго-КМВ 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: [] 

Все URLs используют пространство имен, как в {% url 'zinnia:entry_archive_index' %} и еще возмещена в оболочке и просто не удается.

Что еще можно сделать для его отладки? Может, это из-за локализации?

У меня есть URLS конфигурации:

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 

ответ

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
  • Переехал cms после zinnia и перед cmsplugin_zinnia из settings.py в demo_cmsplugin_zinnia

С этим я могу выбрать Zinnia Weblog как Application под Advanced Settings для нового Django CMS страницы, и придать ему уникальный Application Instance Name, как предложено в Django CMS docs.. Название страницы или поля ее URL-адреса не имеет значения.

Отсюда я могу придумать свой собственный skeleton.html, который не содержит ссылок на zinnia, и у вас есть zinnia.base.html продлить мой новый шаблон скелета.

Однако, на данный момент cmsplugin_zinnia docs предложить:

  • «Когда apphook зарегистрирован, вы можете удалить включение zinnia.urls в urls.py, а затем перезапустить сервер, чтобы увидеть его в полную силу.»

, но вместо этого я получаю NoReverseMatch at /name_of_my_blog_app/ исключение, которое исчезает только тогда, когда я включаю zinnia.urls, как указано выше, не namespace.

По прошествии нескольких недель с момента вашего первоначального сообщения вы, возможно, решили это к настоящему времени. Если нет, я надеюсь, что это указывает на правильное направление. Если вы столкнулись с теми же проблемами (EntryMenu not loaded) в какой-то момент и смогли решить, сообщите мне.

+0

Не могли бы вы объяснить этот шаг '' 'Добавлена ​​app_name = 'циннии' в cmsplugin_zinnia.cmsapp.ZinniaApphook'''? – JackLeo

+0

Конечно. После установки 'cmsplugin_zinnia' перейдите в' cms_app.py' в основной папке: https://github.com/Fantomas42/cmsplugin-zinnia/blob/develop/cmsplugin_zinnia/cms_app.py. Там вы добавите строку 'app_name = 'zinnia'' добавить нижнюю часть:' class ZinniaApphook (CMSApp) '. Речь идет об именах приложений и экземплярах, которые описаны здесь: https://docs.djangoproject.com/en/dev/topics/http/urls/#url-namespaces Извините, но поля комментариев не очень хороши для вставки кода. Дайте мне знать, если вы хотите, чтобы я отправил код отдельно. – Stefan

0

С помощью dev-версии для django-blog-zinnia я больше не вижу «EntryMenu not loaded». Все ошибки, связанные с меню, исчезли. Как я понимаю, это связано с присущей им пространством имен в zinnia. Fantomas42 просматривает его в версии разработки.

Это была прослежена на https://github.com/django-blog-zinnia/cmsplugin-zinnia/issues/29

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