2016-08-26 13 views
0

私はzinniaのエントリのURLをカスタマイズして、エントリのスラッグを表示しようとしています。つまり、.../blog/slug。私は密接にドキュメントhere次してきた - 私ははget_absolute_urlメソッドを上書きしてしまったが、私は、ビューを追加し、URLを設定し、Djangoの設定で_baseモデルを登録しました - まだエラーが解消されない:Zinnia rewriting urlsは機能しません

zinnia_customizedモデル。 PY:

from django.db import models 
from zinnia.models_bases.entry import AbstractEntry 


class EntryWithNewUrl(AbstractEntry): 
    """Entry with '/blog/<id>/' URL""" 

    @models.permalink 
    def get_absolute_url(self): 
     return ('zinnia:entry_detail',(), 
       {'slug': self.slug}) 

    class Meta(AbstractEntry.Meta): 
     abstract = True 

zinnia_customized 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' 

プロジェクトのurls.py:

urlpatterns = [ 
url(r'^$', TemplateView.as_view(template_name='pages/home.html'), name='home'), 
url(r'^about/$', TemplateView.as_view(template_name='pages/about.html'), name='about'), 


url(r'^admin/tools/', include('admin_tools.urls')), 
url(settings.ADMIN_URL, include(admin.site.urls)), 


url(r'^users/', include('anpene.users.urls', namespace='users')), 
url(r'^accounts/', include('allauth.urls')), 

url(r'^blog/', include('zinnia_customized.urls', namespace='zinnia')), 
url(r'^comments/', include('django_comments.urls')), 
] 

zinnia_customized urls.py:

blog_urls = [ 
    url(r'^', include('zinnia.urls.capabilities')), 
    url(r'^search/', include('zinnia.urls.search')), 
    url(r'^sitemap/', include('zinnia.urls.sitemap')), 
    url(r'^trackback/', include('zinnia.urls.trackback')), 
    url(r'^blog/tags/', include('zinnia.urls.tags')), 
    url(r'^blog/feeds/', include('zinnia.urls.feeds')), 
    url(r'^blog/authors/', include('zinnia.urls.authors')), 
    url(r'^blog/categories/', include('zinnia.urls.categories')), 
    # url(r'^blog/', include('zinnia.urls.entries')), 
    url(r'^blog/', include('zinnia_customized.urls.entries')), 
    url(r'^blog/', include('zinnia.urls.archives')), 
    url(r'^blog/', include('zinnia.urls.shortlink')), 
    url(r'^blog/', include('zinnia.urls.quick_entry')), 
] 
urlpatterns += patterns('', 
         url(r'^', include(blog_urls), name='blog') 
         ) 

zinnia_customizedアプリのURL/entries.py:

from django.conf.urls import url 
from django.conf.urls import patterns 
from zinnia_customized.views import EntryDetail 

urlpatterns = [ 
    url(r'^(?P<slug>[\w-]+)/$', EntryDetail.as_view(), name='entry_detail'), 
] 

zinnia_customized admin.py:

from django.contrib import admin 
from django.utils.translation import ugettext_lazy as _ 

from zinnia.models.entry import Entry 
from zinnia.admin.entry import EntryAdmin 

class EntryUrlAdmin(EntryAdmin): 
    """blank""" 


admin.site.register(Entry, EntryUrlAdmin) 

設定:

... 
ZINNIA_ENTRY_BASE_MODEL = 'zinnia_customized.models.EntryWithNewUrl' 
... 

とエラー:

NoReverseMatch at /blog/ 

Reverse for 'entry_detail' with arguments '()' and keyword arguments '{'slug': u'pies'}' not found. 1 pattern(s) tried: [u'blog/(?P<year>\\d{4})/(?P<month>\\d{2})/(?P<day>\\d{2})/(?P<slug>[-\\w]+)/$'] 

答えて

0

私の問題は、したがって、Djangoはそれがフォルダやurls.py

を使用するようになっていたかどうかわからなかった、私は私のzinnia_customizedのURLという名前のフォルダを作成したということでした
関連する問題