django-cms app挂钩主页错误

时间:2012-02-04 15:16:11

标签: django django-cms

我正在玩django-cms,我想创建一个现有应用程序的app-hook。如果我选择显示app-hook的页面不是主页,那么这很好。

这是我的应用程序的urls.py,我正在挂钩:

from django.conf.urls.defaults import patterns, include, url

urlpatterns = patterns('films.views',
    url(r'^$', 'index'),
    url(r'^(?P<film_id>\d+)/$', 'detail'),
)

cms_app.py如下:

from cms.app_base import CMSApp
from cms.apphook_pool import apphook_pool
from django.utils.translation import ugettext_lazy as _

class FilmApphook(CMSApp):
    name = _("Film Apphook")
    urls = ["films.urls"]

apphook_pool.register(FilmApphook)

我有网址:

/ (<- set to have the slug home, but django-cms doesn't seem to serve it at /home if it's the startpage)
/news
/...

当我将主页设置为具有app-hook时,它会呈现我的films.views的索引,购买我会得到404进行任何细节操作。

I.e

/ <- correctly renders films.index
/home <- 404
/home/1 <- 404
/1 <- 404

如果我将app-hook更改为新闻,那么一切正常,(或者如果我将另一页设为主页)。

/news <- correctly renders films.index
/news/1 <- correctly renders films.detail

问题似乎是django-cms忽略了起始页面的slug,无论如何要解决这个问题吗?

我应该提一下,我已经尝试设置覆盖网址来处理这个问题,然后当/ home被提供时,/ home / 1仍然会给出404。

2 个答案:

答案 0 :(得分:1)

这有点狡猾的解决方法,但今天我可以忍受它。我基本上将一个子页面添加到/ home named / films,确保它不在导航中,并在那里添加app-hook。

家庭/假孩子页面没有自己的内容,这就是为什么我可以忍受它,并且我留下了我想要的网址。

/ <- films.views.index
/films/1 <- films.views.details/1

答案 1 :(得分:0)

这可能是您的django-cms版本的错误:

https://github.com/divio/django-cms/issues/47