2012-02-04 1 views
0

Я играю с django-cms, и я хочу создать приложение-крючок для существующего приложения. Это нормально, если страница, которую я выбираю, чтобы показать приложение-крючок, не является главной страницей.django-cms app hook на главной странице error

Это мой 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) 

У меня есть URLs:

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

Когда я установил домашнюю страницу с приложением, он отображает индекс моих фильмов. Просмотрите, купите, я получаю 404, идущий к любой детали ac ЦИИ.

т.е.

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

Если изменить приложение-крюк, чтобы быть под новостями вместо этого, все работает отлично, (или если я сделаю еще одну страницу на главной странице).

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

Проблема, кажется, что Джанго-К игнорируют слизняк для запуска страницы, есть в любом случае, чтобы обойти эту проблему?

я, вероятно, следует отметить, что я попытался установить перезапись URL, чтобы работать вокруг этого, и в то время как/дома, затем служил,/дом/1 по-прежнему дает 404.

ответ

1

Это немного изворотливый обходной путь, но я могу жить с ним на сегодня. Я в основном добавляю дочернюю страницу в/home named/movies, убедившись, что она не находится в навигации, и добавьте туда приложение.

У дома/поддельной-детской страницы нет собственного контента, поэтому я могу жить с ним, и я остался с адресами, которые я хочу.

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

Спасибо за предоставленные этот ответ. Во всех смыслах и целях он работает. Единственным недостатком является то, что вы видите ненужную страницу администратора. Мне удалось получить slug подстраницы, установив reverse_id на странице, и {% page_attribute "slug" 'myReverseId'%}. – thnee

0

Это может быть ошибкой с вашей версией Джанго-СМИ:

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

+0

Я запускаю 2.2, в котором исправлена ​​эта ошибка. Работа приложения-ish (т. Е. Индекс работает нормально), просто маршрутизация URL-кода является отвратительной. –

 Смежные вопросы

  • Нет связанных вопросов^_^