本文整理汇总了Python中wagtail.wagtailcore.models.Page类的典型用法代码示例。如果您正苦于以下问题:Python Page类的具体用法?Python Page怎么用?Python Page使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Page类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: handle
def handle(self, *args, **options):
# Get blogpage content type
blogpage_content_type, created = ContentType.objects.get_or_create(
model='blogpage',
app_label='puput',
defaults={'name': 'page'} if DJANGO_VERSION < (1, 8) else {}
)
# Get root page
rootpage = Page.objects.first()
# Set site root page as root site page
site = Site.objects.first()
site.root_page = rootpage
site.save()
# Create example blog page
blogpage = Page(
title="Blog",
content_type=blogpage_content_type,
slug='blog',
)
# Add blog page as a child for homepage
rootpage.add_child(instance=blogpage)
revision = blogpage.save_revision()
revision.publish()
开发者ID:C3-Desarrollo,项目名称:puput,代码行数:27,代码来源:puput_initial_data.py
示例2: test_page
def test_page(self):
page = Page(
title='testpage',
slug='test',
path='000100019999',
depth=3
)
page.save()
return page
开发者ID:kinaklub,项目名称:next.filmfest.by,代码行数:9,代码来源:test_edit_handlers.py
示例3: index
def index(request, parent_page_id=None):
if parent_page_id:
parent_page = get_object_or_404(Page, id=parent_page_id)
else:
parent_page = Page.get_first_root_node()
pages = parent_page.get_children().prefetch_related('content_type')
# Get page ordering
ordering = request.GET.get('ordering', '-latest_revision_created_at')
if ordering not in ['title', '-title', 'content_type', '-content_type', 'live', '-live', 'latest_revision_created_at', '-latest_revision_created_at', 'ord']:
ordering = '-latest_revision_created_at'
# Pagination
# Don't paginate if sorting by page order - all pages must be shown to
# allow drag-and-drop reordering
do_paginate = ordering != 'ord'
if do_paginate:
ordering_no_minus = ordering.lstrip('-')
pages = pages.order_by(ordering).annotate(null_position=Count(ordering_no_minus)).order_by('-null_position', ordering)
paginator, pages = paginate(request, pages, per_page=50)
return render(request, 'wagtailadmin/pages/index.html', {
'parent_page': parent_page,
'ordering': ordering,
'pagination_query_params': "ordering=%s" % ordering,
'pages': pages,
'do_paginate': do_paginate,
})
开发者ID:dRockolla,项目名称:wagtail,代码行数:29,代码来源:pages.py
示例4: setUp
def setUp(self):
home_page = CaosHomePage(title='TestHomePage')
root_page = Page.get_root_nodes()[0]
root_page.add_child(instance=home_page)
sites = Site.objects.get(id=1)
sites.root_page = home_page
sites.save()
开发者ID:ramanan12345,项目名称:wagtail-tech-blog,代码行数:7,代码来源:tests.py
示例5: clean
def clean(self):
cleaned_data = super(WagtailAdminPageForm, self).clean()
if 'slug' in self.cleaned_data:
if not Page._slug_is_available(
cleaned_data['slug'], self.parent_page, self.instance
):
self.add_error('slug', forms.ValidationError(_("This slug is already in use")))
# Check scheduled publishing fields
go_live_at = cleaned_data.get('go_live_at')
expire_at = cleaned_data.get('expire_at')
# Go live must be before expire
if go_live_at and expire_at:
if go_live_at > expire_at:
msg = _('Go live date/time must be before expiry date/time')
self.add_error('go_live_at', forms.ValidationError(msg))
self.add_error('expire_at', forms.ValidationError(msg))
# Expire at must be in the future
if expire_at and expire_at < timezone.now():
self.add_error('expire_at', forms.ValidationError(_('Expiry date/time must be in the future')))
return cleaned_data
开发者ID:alexgleason,项目名称:wagtail,代码行数:25,代码来源:forms.py
示例6: create_test
def create_test(title, intro, parent=None):
if (parent is None):
parent = Page.get_first_root_node()
contact = ContactFormPage(title=title, intro=intro, thank_you_head='f',
thank_you_text='f', slug=text.slugify(title))
parent.add_child(instance=contact)
return contact
开发者ID:schaermu,项目名称:schaermu-ch,代码行数:7,代码来源:models.py
示例7: browse
def browse(request, parent_page_id=None):
# Find parent page
if parent_page_id:
parent_page = get_object_or_404(Page, id=parent_page_id)
else:
parent_page = Page.get_first_root_node()
# Get children of parent page
pages = parent_page.get_children()
# Filter them by page type
# A missing or empty page_type parameter indicates 'all page types' (i.e. descendants of wagtailcore.page)
page_type_string = request.GET.get('page_type') or 'wagtailcore.page'
if page_type_string != 'wagtailcore.page':
try:
desired_classes = page_models_from_string(page_type_string)
except (ValueError, LookupError):
raise Http404
# restrict the page listing to just those pages that:
# - are of the given content type (taking into account class inheritance)
# - or can be navigated into (i.e. have children)
choosable_pages = filter_page_type(pages, desired_classes)
descendable_pages = pages.filter(numchild__gt=0)
pages = choosable_pages | descendable_pages
else:
desired_classes = (Page, )
can_choose_root = request.GET.get('can_choose_root', False)
# Parent page can be chosen if it is a instance of desired_classes
parent_page.can_choose = issubclass(parent_page.specific_class or Page, desired_classes) and (can_choose_root or not parent_page.is_root())
# Pagination
# We apply pagination first so we don't need to walk the entire list
# in the block below
paginator, pages = paginate(request, pages, per_page=25)
# Annotate each page with can_choose/can_decend flags
for page in pages:
if desired_classes == (Page, ):
page.can_choose = True
else:
page.can_choose = issubclass(page.specific_class or Page, desired_classes)
page.can_descend = page.get_children_count()
# Render
return render_modal_workflow(
request,
'wagtailadmin/chooser/browse.html', 'wagtailadmin/chooser/browse.js',
shared_context(request, {
'parent_page': parent_page,
'pages': pages,
'search_form': SearchForm(),
'page_type_string': page_type_string,
'page_type_names': [desired_class.get_verbose_name() for desired_class in desired_classes],
'page_types_restricted': (page_type_string != 'wagtailcore.page')
})
)
开发者ID:Tivix,项目名称:wagtail,代码行数:60,代码来源:chooser.py
示例8: index
def index(request, parent_page_id=None):
if parent_page_id:
parent_page = get_object_or_404(Page, id=parent_page_id)
else:
parent_page = Page.get_first_root_node()
pages = parent_page.get_children().prefetch_related("content_type")
# Get page ordering
ordering = request.GET.get("ordering", "title")
if ordering not in ["title", "-title", "content_type", "-content_type", "live", "-live", "ord"]:
ordering = "title"
# Pagination
if ordering != "ord":
pages = pages.order_by(ordering)
p = request.GET.get("p", 1)
paginator = Paginator(pages, 50)
try:
pages = paginator.page(p)
except PageNotAnInteger:
pages = paginator.page(1)
except EmptyPage:
pages = paginator.page(paginator.num_pages)
return render(
request, "wagtailadmin/pages/index.html", {"parent_page": parent_page, "ordering": ordering, "pages": pages}
)
开发者ID:romali,项目名称:wagtail,代码行数:29,代码来源:pages.py
示例9: index
def index(request, parent_page_id=None):
if parent_page_id:
parent_page = get_object_or_404(Page, id=parent_page_id)
else:
parent_page = Page.get_first_root_node()
pages = parent_page.get_children().prefetch_related('content_type')
# Get page ordering
ordering = request.GET.get('ordering', 'title')
if ordering not in ['title', '-title', 'content_type', '-content_type', 'live', '-live', 'ord']:
ordering = 'title'
# Pagination
if ordering != 'ord':
pages = pages.order_by(ordering)
p = request.GET.get('p', 1)
paginator = Paginator(pages, 50)
try:
pages = paginator.page(p)
except PageNotAnInteger:
pages = paginator.page(1)
except EmptyPage:
pages = paginator.page(paginator.num_pages)
return render(request, 'wagtailadmin/pages/index.html', {
'parent_page': parent_page,
'ordering': ordering,
'pages': pages,
})
开发者ID:Rakuli,项目名称:wagtail,代码行数:31,代码来源:pages.py
示例10: index
def index(request, parent_page_id=None):
if parent_page_id:
parent_page = get_object_or_404(Page, id=parent_page_id)
else:
parent_page = Page.get_first_root_node()
pages = parent_page.get_children().prefetch_related('content_type')
# Get page ordering
ordering = request.GET.get('ordering', '-latest_revision_created_at')
if ordering not in ['title', '-title', 'content_type', '-content_type', 'live', '-live', 'latest_revision_created_at', '-latest_revision_created_at', 'ord']:
ordering = '-latest_revision_created_at'
# Pagination
if ordering != 'ord':
ordering_no_minus = ordering
if ordering_no_minus.startswith('-'):
ordering_no_minus = ordering[1:]
pages = pages.order_by(ordering).annotate(null_position=Count(ordering_no_minus)).order_by('-null_position', ordering)
p = request.GET.get('p', 1)
paginator = Paginator(pages, 50)
try:
pages = paginator.page(p)
except PageNotAnInteger:
pages = paginator.page(1)
except EmptyPage:
pages = paginator.page(paginator.num_pages)
return render(request, 'wagtailadmin/pages/index.html', {
'parent_page': parent_page,
'ordering': ordering,
'pagination_query_params': "ordering=%s" % ordering,
'pages': pages,
})
开发者ID:pjdelport,项目名称:wagtail,代码行数:35,代码来源:pages.py
示例11: preview_on_create
def preview_on_create(request, content_type_app_name, content_type_model_name, parent_page_id):
# Receive the form submission that would typically be posted to the 'create' view. If submission is valid,
# return the rendered page; if not, re-render the edit form
try:
content_type = ContentType.objects.get_by_natural_key(content_type_app_name, content_type_model_name)
except ContentType.DoesNotExist:
raise Http404
page_class = content_type.model_class()
page = page_class()
edit_handler_class = page_class.get_edit_handler()
form_class = edit_handler_class.get_form_class(page_class)
parent_page = get_object_or_404(Page, id=parent_page_id).specific
form = form_class(request.POST, request.FILES, instance=page, parent_page=parent_page)
if form.is_valid():
form.save(commit=False)
# We need to populate treebeard's path / depth fields in order to pass validation.
# We can't make these 100% consistent with the rest of the tree without making actual
# database changes (such as incrementing the parent's numchild field), but by
# calling treebeard's internal _get_path method, we can set a 'realistic' value that
# will hopefully enable tree traversal operations to at least partially work.
page.depth = parent_page.depth + 1
if parent_page.is_leaf():
# set the path as the first child of parent_page
page.path = page._get_path(parent_page.path, page.depth, 1)
else:
# add the new page after the last child of parent_page
page.path = parent_page.get_last_child()._inc_path()
# ensure that our unsaved page instance has a suitable url set
page.set_url_path(parent_page)
page.full_clean()
# Set treebeard attributes
page.depth = parent_page.depth + 1
page.path = Page._get_children_path_interval(parent_page.path)[1]
preview_mode = request.GET.get('mode', page.default_preview_mode)
response = page.serve_preview(page.dummy_request(request), preview_mode)
response['X-Wagtail-Preview'] = 'ok'
return response
else:
edit_handler = edit_handler_class(instance=page, form=form)
response = render(request, 'wagtailadmin/pages/create.html', {
'content_type': content_type,
'page_class': page_class,
'parent_page': parent_page,
'edit_handler': edit_handler,
'preview_modes': page.preview_modes,
'form': form,
})
response['X-Wagtail-Preview'] = 'error'
return response
开发者ID:barschool,项目名称:wagtail,代码行数:60,代码来源:pages.py
示例12: search_view
def search_view(self, request):
# Search
query_string = request.GET.get('q', None)
if query_string is not None:
# Get list of live subpages of the homepage
# for current language.
pages = Page.objects.descendant_of(self).live()
# TODO: Remove pages from PageQuerySet that don't stem
# from current language's home page.
# Search them
# Waiting on wagtail to push PageQuerySet.search() to
# the public repo.
pages = pages.search(query_string)
else:
pages = Page.objects.none()
# Pagination
# TODO
# Update context
context = Page.get_context(self, request)
context['query_string'] = query_string
context['pages'] = pages
return TemplateResponse(request, self.search_template, context)
开发者ID:point97,项目名称:cms-crop,代码行数:27,代码来源:models.py
示例13: move_choose_destination
def move_choose_destination(request, page_to_move_id, viewed_page_id=None):
page_to_move = get_object_or_404(Page, id=page_to_move_id)
page_perms = page_to_move.permissions_for_user(request.user)
if not page_perms.can_move():
raise PermissionDenied
if viewed_page_id:
viewed_page = get_object_or_404(Page, id=viewed_page_id)
else:
viewed_page = Page.get_first_root_node()
viewed_page.can_choose = page_perms.can_move_to(viewed_page)
child_pages = []
for target in viewed_page.get_children():
# can't move the page into itself or its descendants
target.can_choose = page_perms.can_move_to(target)
target.can_descend = not(target == page_to_move or target.is_child_of(page_to_move)) and target.get_children_count()
child_pages.append(target)
return render(request, 'wagtailadmin/pages/move_choose_destination.html', {
'page_to_move': page_to_move,
'viewed_page': viewed_page,
'child_pages': child_pages,
})
开发者ID:pjdelport,项目名称:wagtail,代码行数:27,代码来源:pages.py
示例14: browse
def browse(request, parent_page_id=None):
page_type = request.GET.get('page_type') or 'wagtailcore.page'
content_type_app_name, content_type_model_name = page_type.split('.')
is_searching = False
try:
content_type = ContentType.objects.get_by_natural_key(content_type_app_name, content_type_model_name)
except ContentType.DoesNotExist:
raise Http404
desired_class = content_type.model_class()
if 'q' in request.GET:
search_form = SearchForm(request.GET)
if search_form.is_valid() and search_form.cleaned_data['q']:
pages = desired_class.objects.exclude(
depth=1 # never include root
).filter(title__icontains=search_form.cleaned_data['q'])[:10]
is_searching = True
if not is_searching:
if parent_page_id:
parent_page = get_object_or_404(Page, id=parent_page_id)
else:
parent_page = Page.get_first_root_node()
parent_page.can_choose = issubclass(parent_page.specific_class, desired_class)
search_form = SearchForm()
pages = parent_page.get_children()
# restrict the page listing to just those pages that:
# - are of the given content type (taking into account class inheritance)
# - or can be navigated into (i.e. have children)
shown_pages = []
for page in pages:
page.can_choose = issubclass(page.specific_class, desired_class)
page.can_descend = page.get_children_count()
if page.can_choose or page.can_descend:
shown_pages.append(page)
if is_searching:
return render(request, 'wagtailadmin/chooser/_search_results.html', {
'querystring': get_querystring(request),
'searchform': search_form,
'pages': pages,
'is_searching': is_searching
})
return render_modal_workflow(request, 'wagtailadmin/chooser/browse.html', 'wagtailadmin/chooser/browse.js', {
'allow_external_link': request.GET.get('allow_external_link'),
'allow_email_link': request.GET.get('allow_email_link'),
'querystring': get_querystring(request),
'parent_page': parent_page,
'pages': shown_pages,
'search_form': search_form,
'is_searching': False
})
开发者ID:0b3r,项目名称:wagtail,代码行数:59,代码来源:chooser.py
示例15: entries_search
def entries_search(self, request, *args, **kwargs):
search_query = request.GET.get('q', None)
self.entries = self.get_entries()
if search_query:
self.entries = self.entries.search(search_query)
self.search_term = search_query
self.search_type = _('search')
Query.get(search_query).add_hit()
return Page.serve(self, request, *args, **kwargs)
开发者ID:carltongibson,项目名称:puput,代码行数:9,代码来源:routes.py
示例16: get_template
def get_template(self, request, *args, **kwargs):
"""
Returns template name.
"""
if self.template_name:
return self.template_name
# Fall back to standard page method.
return Page.get_template(self, request, *args, **kwargs)
开发者ID:tobiase,项目名称:oc-wagtail-core,代码行数:9,代码来源:mixins.py
示例17: handle
def handle(self, *args, **options):
if options['content_path']:
content_path = options['content_path']
elif settings.BOOTSTRAP_CONTENT_DIR:
content_path = settings.BOOTSTRAP_CONTENT_DIR
else:
raise CommandError("Pass --content <content dir>, where <content dir>/pages contain .yml files")
if options['owner']:
owner_user = User.objects.get(username=options['owner'])
else:
owner_user = None
#raise CommandError("Pass --owner <username>, where <username> will be the content owner")
dry_run = options['dry']
contents = load_content(os.path.join(content_path, 'pages'))
for site in Site.objects.all():
site.delete()
for page in Page.objects.filter(id__gt=1):
page.delete()
root = Page.get_first_root_node()
content_root = RootNode('/', page_properties={}, parent_page=root)
for page_attrs in contents:
new_node = SiteNode(full_path=page_attrs['path'], page_properties=page_attrs)
content_root.add_node(new_node)
page_property_defaults = get_page_defaults(content_path)
relation_mappings = get_relation_mappings(content_path)
content_root.instantiate_page(owner_user=owner_user,
page_property_defaults=page_property_defaults,
relation_mappings=relation_mappings,
dry_run=dry_run)
sites = []
for site in get_sites(content_path):
sites.append(Site.objects.create(hostname=site['hostname'],
port=int(site['port']),
root_page=page_for_path(site['root_page'])))
default_site = sites[0]
default_site.is_default_site = True
default_site.save()
if dry_run:
self.stdout.write("Dry run, exiting without making changes")
return
content_root.instantiate_deferred_models(owner_user=owner_user,
page_property_defaults=page_property_defaults,
relation_mappings=relation_mappings,
dry_run=dry_run)
开发者ID:bgrace,项目名称:wagtail-commons,代码行数:57,代码来源:bootstrap_content.py
示例18: test_search_scopes_to_site_root_page
def test_search_scopes_to_site_root_page(self):
home_page = Page.objects.get(slug='home')
root_article = Page(
title='Justin Bieber',
slug='justin-bieber'
)
non_root_article = Page(
depth=0,
path='0002',
title='Justin Bieber Again',
slug='justin-bieber-again'
)
home_page.add_child(instance=root_article)
non_root_article.save()
result = pg_full_text_search('Justin Bieber', home_page)
assert list(result) == [root_article]
开发者ID:Kagiso-Future-Media,项目名称:kagiso_search,代码行数:18,代码来源:test_utils.py
示例19: index
def index(request, parent_page_id=None):
if parent_page_id:
parent_page = get_object_or_404(Page, id=parent_page_id)
else:
parent_page = Page.get_first_root_node()
pages = parent_page.get_children().prefetch_related('content_type')
# Get page ordering
ordering = request.GET.get('ordering', '-latest_revision_created_at')
if ordering not in [
'title',
'-title',
'content_type',
'-content_type',
'live', '-live',
'latest_revision_created_at',
'-latest_revision_created_at',
'ord'
]:
ordering = '-latest_revision_created_at'
if ordering == 'ord':
# preserve the native ordering from get_children()
pass
elif ordering == 'latest_revision_created_at':
# order by oldest revision first.
# Special case NULL entries - these should go at the top of the list.
# Do this by annotating with Count('latest_revision_created_at'),
# which returns 0 for these
pages = pages.annotate(
null_position=Count('latest_revision_created_at')
).order_by('null_position', 'latest_revision_created_at')
elif ordering == '-latest_revision_created_at':
# order by oldest revision first.
# Special case NULL entries - these should go at the end of the list.
pages = pages.annotate(
null_position=Count('latest_revision_created_at')
).order_by('-null_position', '-latest_revision_created_at')
else:
pages = pages.order_by(ordering)
# Pagination
# Don't paginate if sorting by page order - all pages must be shown to
# allow drag-and-drop reordering
do_paginate = ordering != 'ord'
if do_paginate:
paginator, pages = paginate(request, pages, per_page=50)
return render(request, 'wagtailadmin/pages/index.html', {
'parent_page': parent_page,
'ordering': ordering,
'pagination_query_params': "ordering=%s" % ordering,
'pages': pages,
'do_paginate': do_paginate,
})
开发者ID:wengole,项目名称:wagtail,代码行数:56,代码来源:pages.py
示例20: preview_on_create
def preview_on_create(request, content_type_app_name, content_type_model_name, parent_page_id):
# Receive the form submission that would typically be posted to the 'create' view. If submission is valid,
# return the rendered page; if not, re-render the edit form
try:
content_type = ContentType.objects.get_by_natural_key(content_type_app_name, content_type_model_name)
except ContentType.DoesNotExist:
raise Http404
page_class = content_type.model_class()
page = page_class()
edit_handler_class = get_page_edit_handler(page_class)
form_class = edit_handler_class.get_form_class(page_class)
form = form_class(request.POST, request.FILES, instance=page)
if form.is_valid():
form.save(commit=False)
# ensure that our unsaved page instance has a suitable url set
parent_page = get_object_or_404(Page, id=parent_page_id).specific
page.set_url_path(parent_page)
# Set treebeard attributes
page.depth = parent_page.depth + 1
page.path = Page._get_children_path_interval(parent_page.path)[1]
# This view will generally be invoked as an AJAX request; as such, in the case of
# an error Django will return a plaintext response. This isn't what we want, since
# we will be writing the response back to an HTML page regardless of success or
# failure - as such, we strip out the X-Requested-With header to get Django to return
# an HTML error response
request.META.pop('HTTP_X_REQUESTED_WITH', None)
try:
display_mode = request.GET['mode']
except KeyError:
display_mode = page.get_page_modes()[0][0]
response = page.show_as_mode(display_mode)
response['X-Wagtail-Preview'] = 'ok'
return response
else:
edit_handler = edit_handler_class(instance=page, form=form)
parent_page = get_object_or_404(Page, id=parent_page_id).specific
response = render(request, 'wagtailadmin/pages/create.html', {
'content_type': content_type,
'page_class': page_class,
'parent_page': parent_page,
'edit_handler': edit_handler,
'display_modes': page.get_page_modes(),
})
response['X-Wagtail-Preview'] = 'error'
return response
开发者ID:jmiguelv,项目名称:wagtail,代码行数:55,代码来源:pages.py
注:本文中的wagtail.wagtailcore.models.Page类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论