def conform_to_value(self, owner, value):
        """
        When no root node has been set, we prompt the user to choose one from
        the list of choices.  Otherwise, we set the ``WidgyWidget`` class as
        the widget we use for this field instance.
        """
        self.owner = owner
        if isinstance(value, Node):
            self.node = value
            try:
                # Sometimes the WidgyWidget is wrapped in a
                # RelatedFieldWidgetWrapper
                self.widget.widget.node = value
            except __HOLE__:
                self.widget.node = value
            self.queryset = None
        else:
            # remove the empty choice
            choices = [c for c in self.choices if c[0]]
            if len(choices) == 1:
                self._value = choices[0][0]
                self.widget = DisplayWidget(display_name=choices[0][1])
                self.help_text = _('You must save before you can edit this.')
            else:
                self.widget = ContentTypeRadioSelect(
                    choices=choices,
                )

        try:
            self.widget.widget.site = self.site
            self.widget.widget.owner = owner
        except AttributeError:
            self.widget.site = self.site
            self.widget.owner = owner
dataset/ETHPy150Open fusionbox/django-widgy/widgy/forms.py/WidgyFormField.conform_to_value