Django 1.10.6、Django-cms 3.4.2、Django-blog-zinnia 0.18.1、および cmsplugin-zinnia==0.8.1 を実行しています (django 1.10 互換性が実装されている github fork からダウンロード)
私はこの問題にあまりにも長い間悩まされており、脳が溶けています
マニュアルに書いてある通りにやった
zinnia_integration
プロジェクトでカスタム アプリを作成しました。
zinnia_integration/models.py
from django.db import models
from zinnia.models_bases.entry import AbstractEntry
class EntryWithNewUrl(AbstractEntry):
"""Entry with '/blog/<slug>/' URL"""
@models.permalink
def get_absolute_url(self):
return ('zinnia:entry_detail', (),
{'slug': self.slug})
class Meta(AbstractEntry.Meta):
abstract = True
zinnia_integration/views.py
from django.views.generic.detail import DetailView
from zinnia.models.entry import Entry
from zinnia.views.mixins.entry_preview import EntryPreviewMixin
from zinnia.views.mixins.entry_protection import EntryProtectionMixin
class EntryDetail(EntryPreviewMixin,
EntryProtectionMixin,
DetailView):
queryset = Entry.published.on_site()
template_name_field = 'template'
zinnia_integration/urls.py
from django.conf.urls import url
from zinnia_integration.views import EntryDetail
urlpatterns = [
url(r'^(?P<slug>[-\w]+)/$',
EntryDetail.as_view(),
name='entry_detail'),
]
そして、この urlpatterns をプロジェクトの urls.py に含めます
blog_urls = ([
...
url(r'^blog/comments/', include('zinnia.urls.comments')),
url(r'^blog/', include('zinnia_integration.urls')),
#url(r'^blog/', include('zinnia.urls.entries')),
url(r'^blog/', include('zinnia.urls.archives')),
....
], 'zinnia')
urlpatterns = [
...
url(r'^', include(blog_urls)),
...
]
そして私のsettings.pyで
ZINNIA_ENTRY_BASE_MODEL = 'zinnia_integration.models.EntryWithNewUrl'
その後、サーバーを再起動して、
NoReverseMatch at /
Reverse for 'zinnia_entry_add' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
サブクラス モデル (EntryWithNewUrl) で何も変更しなくても、エラーが発生します。