【发布时间】:2014-02-11 11:16:06
【问题描述】:
我正在使用 Django CMS django-cms==2.4.3
我准备了一个名为 Products 的 apphook。
我的 cms_app.py 文件是:
class ProductsApp(CMSApp):
name = _("Products")
urls = ["products.urls"]
apphook_pool.register(ProductsApp)
我的 models.py 文件是:
class Region(TranslatableModel):
slug = models.SlugField(_('short name for URL'))
def get_absolute_url(self):
return reverse('products_region', args=(self.slug, ))
我的 urls.py 文件是:
urlpatterns = patterns(
'products.views',
url(r'region/(?P<slug>.*)/$', 'region', name='products_region'),
)
在我的模板中,我将 url 称为:
<li><a href="{{ item.get_absolute_url }}">{{ item.name }}</a></li>
我的问题是:我做得对吗? 有时它可以工作,有时我会收到很多这样的错误:
Reverse for 'products_region' with arguments '(u'veneto',)' and keyword arguments '{}' not found.
我怎样才能让它工作?这是一个 django-cms 错误吗?谢谢
【问题讨论】:
-
确保将 apphook 添加到页面中使用的所有语言中,然后重新启动服务器。
-
谢谢保罗,这解决了我的问题。
-
所以,正确的程序是: - 将 apphook 添加到页面的每个翻译中 - 重新启动服务器
-
是的,在 cms >= 3 上,我们已经删除了特定于语言的 apphook,因此您只需添加一次 apphook,但
标签: django django-templates django-urls django-cms