From 34bd4bd974562ee35e6cf7cdc600c7a05dd022a1 Mon Sep 17 00:00:00 2001 From: Matt Westcott Date: Tue, 10 Feb 2015 23:29:20 +0000 Subject: [PATCH] first pass at to_python and get_prep_value on PageChooserBlock --- wagtail/wagtailadmin/blocks.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/wagtail/wagtailadmin/blocks.py b/wagtail/wagtailadmin/blocks.py index fa2b779bc..f529b369d 100644 --- a/wagtail/wagtailadmin/blocks.py +++ b/wagtail/wagtailadmin/blocks.py @@ -356,6 +356,23 @@ class PageChooserBlock(FieldBlock): from wagtail.wagtailadmin.widgets import AdminPageChooser return ModelChoiceField(queryset=Page.objects.all(), widget=AdminPageChooser) + def to_python(self, value): + from wagtail.wagtailcore.models import Page + + if value is None or isinstance(value, Page): + return value + else: + try: + return Page.objects.get(pk=value) # TODO: use the specific class in place of Page where appropriate + except Page.DoesNotExist: + return None + + def get_prep_value(self, value): + if isinstance(value, Page): + return value.id + else: + return value + # ======= # Chooser # =======