按照此处的步骤操作:http ://django-blog-zinnia.com/documentation/how-to/rewriting_entry_url/ 由于措辞使我很难调试,我不清楚我是否已经完成了所有正确的步骤我的代码。
我创建了以下文件,但尝试访问任何内容时出现 ViewDoesNotExist 错误(注意:如果我将主 url.py 切换为指向 Zinnia 的默认 URL,则一切正常。
错误:
在模块 zinnia.views.entries 中尝试了 entry_shortlink。错误是:“模块”对象没有属性“入口短链接”
在主 urls.py ----
url(r'^news/', include('qclick.publisher.urls.entries')),
publisher/urls/entries.py(从 zinnia 默认值复制,仅编辑到下面)----
...
url(r'^(?P<object_id>\d+)/$',
'qclick.publisher.ext_views.entry_detail',
name='zinnia_entry_detail'),
...
发布者/ext_views.py ----
from zinnia.views.decorators import protect_entry
from django.views.generic.list_detail import object_detail
entry_detail = protect_entry(object_detail)
发布者/ext_models.py ----
from django.db import models
from zinnia.models import EntryAbstractClass
class EntryWithNewUrl(EntryAbstractClass):
"""Entry with '/news/<id>/' URL"""
@models.permalink
def get_absolute_url(self):
return ('zinnia_entry_detail', (),
{'object_id': self.id})
我确信错误正在蔓延,因为我没有正确扩展 Entry 模型,指南说:“只需使用 Extending Entry 模型文档中解释的方法来创建一个基于 EntryAbstractClass 的新类和新的 get_absolute_url 方法。 "
由于尚不清楚我需要从对 http://django-blog-zinnia.com/documentation/how-to/extending_entry_mo的引用中添加哪些元素....
我只是尝试使用演练的 /news/id/ URL 启动并运行它,然后将其更改为我喜欢的 /news/slug/。
我也在 Zinnia 作者经营的 Google Group 上发布了这个,但没有任何回应。所有帮助表示赞赏!