检查Django CMS中是否存在页面

时间:2013-11-08 15:33:56

标签: django django-cms

我正在Django CMS的管理区域中创建一个页面,我在高级设置下有redirect字段。如何检查在该字段中输入的URL是否是现有Django CMS页面的有效URL?

我应该测试什么?我考虑过向该URL发出请求,如果它抛出404,那么该字段无效,但这听起来有点太过分了。我还有其他选择吗?

2 个答案:

答案 0 :(得分:1)

您可以检查您的实际页面是否在页面池中

如果您的网页处于草稿模式:

from cms.models import Page
your_page.get_path() in [p.get_path() for p in Page.objects.public().published()]

使用reverse_id:

your_page.get_path() in [p.get_path() for p in Page.objects.all() if p.reverse_id != your_page.reverse_id]

答案 1 :(得分:0)

我已使用get_page_queryset_from_path中的cms.utils.page_resolver并检查了redirect字段中输入的路径实际上是否使用上述函数返回了有效Page