Djangocms页面的绝对URL

2024-05-14 22:59:38 发布

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

我想得到我在Django CMS应用程序中发布的所有页面的列表,但我似乎无法让它呈现特定语言的url。在

在我的设置中,我指定了:

LANGUAGES = [
    ('sv', 'Svenska'),
    ('en', 'English'),
]

我进入管理站点,创建一个联系人页面(不是站点主页),并在不同的语言上设置不同的slug,比如“contact sv”和“contact en”。在

然后我有一个视图得到一个页面

^{pr2}$

然后得到以下输出:

swe: /contact-en/
eng: /contact-en/

当我期望swe url是/sv/contact sv/

我不需要路径的语言前缀,我可以在路径前面加上语言前缀,但我需要特定于语言的路径。在


Tags: django路径语言应用程序url列表cms站点
3条回答

我敢打赌有更好的方法来做,但是现在我在页面对象上循环标题。在

for title in page.title_set.all():
    print title.language, title.slug

很管用,但我不喜欢。。。在

也许你可以使用网站地图策略。django cms有自己的站点地图类,运行以下代码:

class CMSSitemap(Sitemap):
    changefreq = "monthly"
    priority = 0.5

    def items(self):
        all_titles = Title.objects.public().filter(
            Q(redirect='') | Q(redirect__isnull=True),
            page__login_required=False,
            page__site=Site.objects.get_current(),
        ).order_by('page__path')
        return all_titles

我可以为您提供最好的解决方案,就是等待2.4版本,它将使用Django的内置i18n_urlpatterns来处理这个问题,这应该可以解决您的问题,目前,您的答案是唯一的出路。在

相关问题 更多 >

    热门问题