Administrador do Silverstripe: o menu suspenso "Possui um" é convertido em um campo de entrada comum após a importação

Estou tendo alguns problemas com o administrador do Silverstripe. Eu defini um modelo de banco de dados (veja as definições de classe abaixo) e, depois de fazer um desenvolvimento / desenvolvimento, tudo parece como o esperado. Quando tento adicionar um novo "pacote", todos os campos "tem um" estão lá com uma lista suspensa (veja a captura de tela 1). Também construí um importador que importa esses pacotes. Quando executado, tudo está bem, exceto quando você abre um pacote. Então 'Festival' está corretamente acoplado. Você pode ver o nome e selecionar a lista suspensa. "Trupe", por outro lado, misteriosamente se converteu em um campo de entrada que mostra apenas o ID do registro na outra tabela (veja a captura de tela 2).

Alguém sabe o que está acontecendo aqui? Existe algo que desencadeia esse comportamento que eu desconheço? Existe algo errado com meu código (sim, mas relacionado a esse problema? ;-))? Eu verifiquei a estrutura das tabelas e não há nada suspeito lá ...

Antes:

Depois de:

Package.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';
}

questionAnswers(1)

yourAnswerToTheQuestion