【问题标题】:django cms - resolving pages url by slugdjango cms - 通过 slug 解析页面 url
【发布时间】:2013-04-02 03:53:13
【问题描述】:

是否可以通过 slug 解析页面 url? 比如:

from django.core.urlresolvers import reverse
reverse('pages-details-by-slug',{slug:'my-page-slug'})

但我得到了:

NameError: name 'slug' is not defined

对此有任何帮助吗?

【问题讨论】:

    标签: django django-views django-cms


    【解决方案1】:

    已解决:

    try:
        from cms.models import Title
        page = Title.objects.get(slug="my-page-slug").page
        return page.get_absolute_url()
    except Title.DoesNotExist:
        pass
    

    【讨论】:

    • 如果使用草稿/已发布版本的页面,请记住 两个 对象可能会返回到上面的 page 对象。无论您想要发布版本和/或草稿版本,都可能值得牢记。
    • 对于已发布/草稿案例,您可以执行 page = Title.objects.get(slug='my-page-slug', page__publisher_is_draft=False).page(在 Django CMS 2.4 上测试)
    【解决方案2】:

    Python 不是 Javascript;字典键需要被引用。

    reverse('pages-details-by-slug', {'slug': 'my-page-slug'})
    

    【讨论】:

    • 对于 Django 1.9,使用 reverse('page-details-by-slug', kwargs={'slug': my-page-slug})
    • 里面的kwargs很重要:)
    猜你喜欢
    • 1970-01-01
    • 2013-09-29
    • 2013-02-11
    • 2015-04-19
    • 1970-01-01
    • 2017-08-07
    • 2015-05-21
    • 2014-04-08
    • 2018-02-06
    相关资源
    最近更新 更多