我正在为Django CMS编写一个自定义应用程序,但是在管理员中查看已发布的条目时出现以下错误:
TemplateSyntaxError at /admin/cmsplugin_publisher/entry/
Caught NoReverseMatch while rendering: Reverse for 'cmsplugin_publisher_entry_detail' with arguments '()' and keyword arguments '{'slug': u'test-german'}' not found.
我可以让应用程序工作,如果我在我的主应用程序中给应用程序一个网址网址.py,但这将应用程序修复到一个必需的URL,我只想扩展Django CMS,这样应用程序就会从它添加到的任何页面来。在
模型.py绝对URL模式
@models.permalink
def get_absolute_url(self):
return ('cmsplugin_publisher_entry_detail', (), {
'slug': self.slug})
网址/条目.py
^{pr2}$视图/条目.py
from django.views.generic.list_detail import object_list
from cmsplugin_publisher.models import Entry
from cmsplugin_publisher.views.decorators import update_queryset
entry_index = update_queryset(object_list, Entry.published.all)
视图/装饰工.py
def update_queryset(view, queryset, queryset_parameter='queryset'):
'''Decorator around views based on a queryset passed in parameter which will force the update despite cache
Related to issue http://code.djangoproject.com/ticket/8378'''
def wrap(*args, **kwargs):
'''Regenerate the queryset before passing it to the view.'''
kwargs[queryset_parameter] = queryset()
return view(*args, **kwargs)
return wrap
这里解释了与Django CMS的应用程序集成:http://github.com/divio/django-cms/blob/master/cms/docs/app_integration.txt
问题可能是我没有正确返回RequestContext,因为我在应用程序中使用的是通用视图和自定义的mis。在
CMS应用程序扩展名py文件:
cms公司_应用程序副本
from django.utils.translation import ugettext_lazy as _
from cms.app_base import CMSApp
from cms.apphook_pool import apphook_pool
from cmsplugin_publisher.settings import APP_MENUS
class PublisherApp(CMSApp):
name = _('Publisher App Hook')
urls = ['cmsplugin_publisher.urls']
apphook_pool.register(PublisherApp)
任何一个有价值的指标,这是一个很难破解的难题!在
我要再次检查
urls/entries.py
是否实际被导入到某个地方,否则它将无法获得反向匹配。在更新:
好的,我想你的错误源于
get_absolute_url
:我怀疑这是因为它最终调用了
^{pr2}$object_detail
,它需要一个位置参数queryset
(参见django/views/generic/list)_细节.py). 您可以尝试将其更改为:看起来这是Django cms2.1.0beta3中URLconf解析器中的一个bug,它是fixed in dev。只有在应用程序中包含其他urlconf时才会出现此错误。在
相关问题 更多 >
编程相关推荐