如何用“包含”过滤?

2024-04-23 08:33:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用这个段过滤并得到一些对象。在

baseSet = ThreadedComment.objects.filter(tree_path__contains = baseT.comment_ptr_id)

但它带来了一些不该存在的物体。 例如,我的基本注释是1,它带来了这些树路径的项目。在

^{pr2}$

最后两个不应该在这里。但是因为他们的树路径包含“1” 过滤器也会带来这些。在

如何编写regex来创建不带这些项的筛选器?在


Tags: path项目对象路径idtreeobjectscomment
2条回答

为什么不做呢

baseSet = ThreadedComment.objects.filter(tree_path__contains = ('%010i' % int(baseT.comment_ptr_id)))

所以id=1的搜索字符串将是“0000000001”,而不是“000000011”的子字符串?在

编辑:根据下面的注释,最好使用注释“路径”数字。这有点混乱,因为您使用格式化来设置格式化标记。看起来像这样:

^{pr2}$

regexp将是'(^|/)0*%d(/|$)' % baseT.comment_ptr_id,并与tree_path__regex一起使用

阅读有关MPTT的信息,以了解这种方法的替代方法。在

相关问题 更多 >