Administrador de Silverstripe: el menú desplegable "Tiene uno" se convierte en un campo de entrada normal después de la importación

Estoy teniendo algunos problemas con el administrador de Silverstripe. Definí un modelo de base de datos (ver definiciones de clase a continuación), y después de hacer un desarrollo / desarrollo, todo se ve como se esperaba. Cuando intento agregar un nuevo "paquete", todos los campos "tiene uno" están allí con un menú desplegable (ver captura de pantalla 1). También construí un importador que importa estos paquetes. Cuando se ejecuta, todo se ve bien, excepto cuando abres un paquete. Entonces 'Festival' está correctamente acoplado. Puede ver el nombre y puede seleccionar el menú desplegable. "Troupe", por otro lado, se ha convertido misteriosamente en un campo de entrada que solo muestra la identificación del registro en la otra tabla (Ver captura de pantalla 2).

¿Alguien sabe lo que está pasando aquí? ¿Hay algo que desencadena este comportamiento que no conozco? ¿Hay algún problema con mi código (sí, pero relacionado con este problema? ;-))? He comprobado la estructura de las tablas, y no hay nada sospechoso allí ...

Antes de:

Después:

Paquete.php

    class Package extends DataObject {
        public static $db = array(
            'Number'                    => 'Int',
            'Title'                     => 'Varchar(255)',
            'Description'               => 'HTMLText',
            'Credits'                   => 'HTMLText',
        );

        public static $has_many = array(
            'Events'    => 'Event',
        );

        public static $many_many = array(
           'Genres'            => 'Genre',
        );

        public static $has_one = array(
            'Festival'          => 'Festival',
            'Troupe'            => 'Troupe',
        );
    }

    class PackageAdmin extends ModelAdmin {
        public static $managed_models       = array('Package'); // Can manage multiple models
        static $url_segment                 = 'packages'; // Linked as /admin/packages/
        static $menu_title                  = 'Packages';
    }

Troupe.php

    class Troupe extends DataObject {
        public static $db = array(
            "Name"          => "Varchar(255)",
            "Description"   => "HTMLText",
            "Url"           => "Varchar(255)",
        );

        public static $has_many = array(
            'Packages'      => 'Package.Troupe',
        );
    }

    class TroupeAdmin extends ModelAdmin {
        public static $managed_models       = array('Troupe','Package'); // Can manage multiple models
        static $url_segment                 = 'troupes'; // Linked as /admin/troupes/
        static $menu_title                  = 'Troupes';
    }

Festival.php

class Festival extends DataObject {

    public static $db = array(
        'Name'          => 'Varchar(255)',
        'Description'   => 'HTMLText'
    );

    public static $has_many = array(
        'Packages' => 'Package.Festival'
    );
}

class FestivalAdmin extends ModelAdmin {
    public static $managed_models       = array('Festival','Package'); // Can manage multiple models
    static $url_segment                 = 'festivals'; // Linked as /admin/festivals/
    static $menu_title                  = 'Festivals';
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta