Djangocms apphook url不能与使用Python sh的reverse()一起使用

2024-10-03 15:28:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经创建了一个django CMS apphook。不幸的是,我无法使用pythonshell反向apphook url。在

cms_app.py文件如下所示:

class ArticleApp (CMSApp):
    name = _('Article App')
    app_name = 'article_app'
    urls = ['article.urls']

apphook_pool.register(ArticleApp)

这是我的urls.py文件:

^{pr2}$

模板文件是:

{% url 'article_app:article-by-slug' article.slug %}

在模板内反转预期的URL。如果我尝试使用Python shell执行同样的操作,则会收到一条错误消息:

>>> from django.core.urlresolvers import reverse
>>> from article.models import Article
>>> a = Article.objects.get(pk=1)
>>> reverse('article_app:article-by-slug', kwargs={'slug': a.slug})
# Reverse for 'article_app:article-by-slug' with arguments '()' and keyword arguments '{'slug': 'this-is-article-1'}' not found.

mainurls.py中定义的其他url在shell中的工作方式与预期的一样。只有apphook url不起作用。在

有什么建议吗?在

谢谢你!在


Tags: 文件djangonamepy模板appurlby
2条回答

多亏了@Benjamin Wohlwend,我才得以解决这个问题。apphook页面在“en-us”语言中不可用(Django管理命令的默认设置,如“shell”)。在倒车前我必须激活正确的语言:

from django.utils import translation
translation.activate('de')

从背面删除命名空间:

reverse('article-by-slug', kwargs={'slug': a.slug})

相关问题 更多 >