检查 Django CMS 中是不是存在页面
Posted
技术标签:
【中文标题】检查 Django CMS 中是不是存在页面【英文标题】:Check whether a page exists in Django CMS检查 Django CMS 中是否存在页面 【发布时间】:2013-11-20 16:23:06 【问题描述】:我正在 Django CMS 的管理区域中创建一个页面,并且我在高级设置下有 redirect
字段。如何检查在该字段中输入的 URL 是否是现有 Django CMS 页面的有效 URL?
我应该测试什么?我考虑过向该 URL 发出请求,如果它抛出 404,则使该字段无效,但这听起来有点牵强。我还有哪些其他选择?
【问题讨论】:
【参考方案1】:我使用了cms.utils.page_resolver
中的get_page_queryset_from_path
,并使用上述函数检查了在redirect
字段中输入的路径实际上返回了一个有效的Page
。
【讨论】:
【参考方案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]
【讨论】:
以上是关于检查 Django CMS 中是不是存在页面的主要内容,如果未能解决你的问题,请参考以下文章