2

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

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

4

2 回答 2

2

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

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

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]
于 2014-03-25T15:15:32.233 回答
1

我已经使用get_page_queryset_from_pathfromcms.utils.page_resolver并检查了在字段中输入的路径实际上使用上述函数redirect返回了一个有效值。Page

于 2014-04-08T11:09:32.173 回答