是否有可能通过它的slug来解析页面url? 喜欢的东西:django cms - 通过slug解析页面url
from django.core.urlresolvers import reverse
reverse('pages-details-by-slug',{slug:'my-page-slug'})
但我得到:
NameError: name 'slug' is not defined
任何帮助?
是否有可能通过它的slug来解析页面url? 喜欢的东西:django cms - 通过slug解析页面url
from django.core.urlresolvers import reverse
reverse('pages-details-by-slug',{slug:'my-page-slug'})
但我得到:
NameError: name 'slug' is not defined
任何帮助?
Python是不是Java脚本;字典键需要引用。
reverse('pages-details-by-slug', {'slug': 'my-page-slug'})
解决:
try:
from cms.models import Title
page = Title.objects.get(slug="my-page-slug").page
return page.get_absolute_url()
except Title.DoesNotExist:
pass
如果使用草稿/已发布版本的页面,值得注意的是可以将**两个**对象返回到上面的页面对象。 可能值得记住是否需要发布和/或草稿版本。 – niceguydave 2014-08-14 14:21:23
对于已发布/起草的案例,您可以使用'page = Title.objects.get(slug ='my-page-slug',page__publisher_is_draft = False).page'(在Django CMS 2.4上测试) – 2015-03-02 15:19:41
对于Django 1.9, reverse('page-details-by-slug',kwargs = {'slug':my-page-slug})' – Bobort 2016-03-22 20:13:50