在 Wagtail 中,Page.objects
是 Page
模型的管理器(manager),它提供了许多方法,用于获取和操作页面对象。以下是 Page.objects
中的所有方法及其示例代码:
get(**kwargs)
:根据关键字参数获取单个页面对象,如果页面不存在则引发 Page.DoesNotExist
异常。
# 根据页面 ID 获取单个页面对象 page = Page.objects.get(id=1)
filter(**kwargs)
:根据关键字参数获取页面对象列表。
# 获取所有已发布的博客页面对象 blog_pages = BlogPage.objects.live() # 获取标题中包含 "hello" 的所有页面对象 pages = Page.objects.filter(title__contains='hello')
exclude(**kwargs)
:排除符合关键字参数条件的页面对象。
# 排除所有未发布的博客页面对象 blog_pages = BlogPage.objects.exclude(live=True) # 排除标题中包含 "hello" 的所有页面对象 pages = Page.objects.exclude(title__contains='hello')
all()
:获取所有页面对象。
# 获取所有页面对象 pages = Page.objects.all()
live()
:获取所有已发布的页面对象。
# 获取所有已发布的博客页面对象 blog_pages = BlogPage.objects.live()
not_live()
:获取所有未发布的页面对象。
# 获取所有未发布的博客页面对象 blog_pages = BlogPage.objects.not_live()
child_of(parent)
:获取指定页面下的所有子页面。
# 获取 "parent" 页面下的所有子页面 child_pages = Page.objects.child_of(parent)
descendant_of(ancestor)
:获取指定页面下的所有后代页面。
# 获取 "ancestor" 页面下的所有后代页面 descendant_pages = Page.objects.descendant_of(ancestor)
ancestor_of(child)
:获取指定页面的所有祖先页面。
# 获取 "child" 页面的所有祖先页面 ancestor_pages = Page.objects.ancestor_of(child)
not_page(page)
:排除指定页面以及其后代页面。
# 排除 "page" 页面以及其后代页面 pages = Page.objects.not_page(page)
type(cls)
:获取指定页面类型的页面对象列表。
# 获取所有 "BlogPage" 页面对象 blog_pages = Page.objects.type(BlogPage)
live_type(cls)
:获取指定页面类型的已发布页面对象列表。
# 获取所有已发布的 "BlogPage" 页面对象 blog_pages = BlogPage.objects.live_type(BlogPage)
not_type(cls)
:排除指定页面类型的页面对象。
# 排除所有 "BlogPage" 页面对象 pages = Page.objects.not_type(BlogPage)
specific()
:获取特定页面
下面是一些常见的方法列表:
all()
:返回Model中所有对象的QuerySet。filter(**kwargs)
:返回满足指定筛选条件的对象的QuerySet。exclude(**kwargs)
:返回不满足指定筛选条件的对象的QuerySet。get(**kwargs)
:返回满足指定筛选条件的单个对象,如果没有或多于一个对象符合条件,则会抛出异常。create(**kwargs)
:创建一个新的对象并将其保存到数据库中。bulk_create(objs, batch_size=None)
:批量创建新的对象并将它们保存到数据库中。update(**kwargs)
:更新满足指定筛选条件的对象。delete()
:删除满足指定筛选条件的所有对象。order_by(*fields)
:按指定字段排序返回QuerySet。values(*fields)
:返回包含指定字段的QuerySet的字典,每个字典代表一个对象。values_list(*fields, flat=False)
:返回包含指定字段的QuerySet的列表或元组,每个元素代表一个对象。annotate(*args, **kwargs)
:为每个对象添加聚合值,并返回包含聚合值的QuerySet。distinct(*fields)
:返回去重后的对象QuerySet。count()
:返回QuerySet中对象的数量。exists()
:如果QuerySet中有对象则返回True,否则返回False。除了以上方法,还有许多其他的方法可用于对Page.objects
执行各种操作。要查看完整列表,请查阅Django官方文档。
我想等网站访问量多了,在这个位置放个广告。网站纯公益,但是用爱发电服务器也要钱啊 ----------狂奔的小蜗牛