我正在 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_path
fromcms.utils.page_resolver
并检查了在字段中输入的路径实际上使用上述函数redirect
返回了一个有效值。Page