【问题标题】:How to reverse urls with DjangoCMS 2.4.x and apphooks如何使用 DjangoCMS 2.4.x 和 apphooks 反转 url
【发布时间】: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


【解决方案1】:

添加 apphook 后请务必重启网络服务器。

【讨论】:

  • 我已经重启了(ctrl+c 然后重启),但是还是不行。我正在使用 ./manage.py runserver 服务器进行开发,但 Apache 和 mod_wsgi 也是如此。
猜你喜欢
  • 2016-03-25
  • 2015-09-30
  • 2018-08-12
  • 2019-09-26
  • 2016-06-01
  • 2012-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多