我正在Django CMS的管理区域中创建一个页面,我在高级设置下有redirect
字段。如何检查在该字段中输入的URL是否是现有Django CMS页面的有效URL?
我应该测试什么?我考虑过向该URL发出请求,如果它抛出404,那么该字段无效,但这听起来有点太过分了。我还有其他选择吗?
答案 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
。