我正在 Django CMS 的管理区域中创建一个页面,并且redirect在高级设置下有该字段。如何检查在该字段中输入的 URL 是否是现有 Django CMS 页面的有效 URL?
我应该测试什么?我考虑过向该 URL 发出请求,如果它抛出 404,则使该字段无效,但这听起来有点牵强。我还有什么其他选择?
我正在 Django CMS 的管理区域中创建一个页面,并且redirect在高级设置下有该字段。如何检查在该字段中输入的 URL 是否是现有 Django CMS 页面的有效 URL?
我应该测试什么?我考虑过向该 URL 发出请求,如果它抛出 404,则使该字段无效,但这听起来有点牵强。我还有什么其他选择?
您可以检查您的实际页面是否在页面池中
如果您的页面处于草稿模式:
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]
我已经使用get_page_queryset_from_pathfromcms.utils.page_resolver并检查了在字段中输入的路径实际上使用上述函数redirect返回了一个有效值。Page